usercenter

36 阅读3分钟
# **gkestor-usercenter使用手册**

### 一 、gkestor-usercenter介绍

​        **gkestor-usercenter模块整合了spring security,实现了登录接口;可使用log注解,根据log注解记录有该注解方法的操作日志。**

------

功能:

- 登录
- 登出
- 日志记录(注解)

------



### 二、可用版本

​  [0.0.1-RELEASE]()           角色,用户

​  [0.0.2-RELEASE]()           角色,用户,组织,部门;角色和部门关联



### 三、gkestor-usercenter使用

#### **1. pom文件导入 gkestor-usercenter依赖**,如:

```java
<dependency>
      <groupId>com.gkestor</groupId>
      <artifactId>gkestor-usercenter</artifactId>
      <version>0.0.2-RELEASE</version>
</dependency>
```

​  有0.0.1-RELEASE/0.0.2-RELEASE两个版本,可根据自己需要导入不同版本依赖;0.0.1版本没有组织和部门表,角色直接和用户相关联;0.0.2版本有组织和部门表,角色和部门关联。

#### **2. 配置文件配置信息**

```
swagger:
  api:
   title: "用户中心接口文档"
client:
 secret: gkestor-yjfs
redis:
 user:
  key: "yjfs-user:"
 token:
  key: "yjfs-token:"
```

​  swagger.api.title配置swagger上服务名称;

​  client.secret 配置spring security客户端密码;

​  redis.user.key 配置redis存入用户信息的key的前缀(完整key是redis.user.key + userId);

​  redis.token.key 配置redis存入用户token的key的前缀(完整key是redis.token.key + userId);

#### 3. 实现LoginService类中方法

- ##### 共有方法:

1. ```
   /**
    * 登录后方法
    * @param joinPoint
    * @param ret
    * @param userId
    */
   void loginAfter(JoinPoint joinPoint,ResponseEntity<OAuth2AccessToken> ret,String userId);
   ```

   ​   该方法在登录完成,该方法在token存入redis后执行。

2. ```
   /**
    * 根据用户名查询用户
    * @param userName
    * @return
    */
    SecurityUser findByUserName(String userName);
   ```

   ​   该方法会传入用户名,需要通过用户名查询用户,返回该用户。

3. ```
   /**
    * 修改用户当前角色
    * @param securityUser
    * @return
    */
    boolean updateCurrentRoleId(SecurityUser securityUser);
   ```

   ​   该方法入参为当前登录用户对象,对象修改了当前角色值,可对用户对象的当前角色进行修改,如不需修改直接返回true。

4. ```
   /**
    * 根据用户id查询用户
    * @param userId
    * @return
    */
    SecurityUser findByUserId(Integer userId);
   ```

   ​   该方法入参为当前登录的用户id,需要根据用户id查询,返回用户信息。

5. ```
   /**
    * 查询全部用户
    * @return
    */
    List<SecurityUser> findAllUser();
   ```

   ​   该方法需要返回全部用户信息,会在服务启动时将返回的用户信息存入redis,之后根据用户id查询直接redis询用户信息,如不需要存入redis则返回null。

   

- ##### 0.0.1-RELEASE版本(没有部门)

1. ```
   /**
    * 查询用户角色关系
    * @param userId
    * @return
    */
    List<BaseUserRole> findUserRoleByUserId(Integer userId);
   ```

   ​   该方法入参为登录的用户id,需要查询该用户所有角色,返回用户角色关联对象。

2. ```
   /**
    * 查询角色与权限关系
    * @param roleId
    * @return
    */
    List<BaseUserRole> findRoleMenuByRoleId(Integer roleId);
   ```

   ​   该方法入参为角色id,需要查询该角色所对应权限,返回角色权限关联对象。

3. ```
   /**
    * 根据角色id查询权限
    * @param roleIds
    * @return
    */
    List<String> findAuthByRoleIds(Set<Integer> roleIds);
   ```

   ​   该方法入参为一个角色id的list集合,需要查询这些角色所拥有的所有权限标识,去重去空,返回权限标识的list集合。

   

- ##### 0.0.2-RELEASE版本(有组织、部门)

1. ```
   /**
    * 查询角色与权限关系
    * @param roleId
    * @return
    */
    List<BaseUserDept> findRoleMenuByRoleId(Integer roleId);
   ```

   ​   该方法传入参为角色id,查询该角色所对应权限,返回角色权限关联对象。

2. ```
   /**
    * 查询组织
    * @param orgId
    * @return
    */
   BaseOrg findOrg(Integer orgId);
   ```

   ​   该方法入参为登录用户的组织id,查询该组织是否存在,返回查询到的组织,进行判断是否存在。

3. ```
   /**
    * 查询用户部门关系
    * @param userId
    * @return
    */
   List<BaseUserDept> findUserDeptByUserId(Integer userId);
   ```

   ​   该方法入参为登录用户id,需要查询该用户所有部门,返回用户部门关联对象。

4. ```
   /**
    * 查询角色部门关系
    * @param deptId
    * @return
    */
   BaseUserDept findRoleDeptByDeptId(Integer deptId);
   ```

   ​   该方法入参是部门id,需要查询该部门所对应角色,返回角色部门关联对象。

5. ```
   /**
    * 查询权限
    * @param deptIds
    * @return
    */
   List<String> findAuthByDeptId(Set<Integer> deptIds);
   ```

   ​   该方法入参为一个部门id的list集合,需要查询这些部门所拥有的所有角色所拥有的权限标识,去重去空,返回权限标识的list集合。