1.前置条件

yurun-common项目切换到authModify分支重新install yurun-common-security模块
yurun-service-api项目切换到authModify分支重新install auth-api模块
yurun-service-public项目切换到authModify分支启动相应的服务

2.颁发Token接口使用 /issueToken

1.入参:

yurun-service-api中auth-api模块中的 CustomTokenRequest 类

  1. {
  2. *"channel": "5", //从请求的头部获取
  3. "claims": {}, //额外参数,目前没有项目使用
  4. *"from": "5", //系统来源编号
  5. "permStrList": ["sys:view","sys:user:search"], //权限字符串列表
  6. "userId": "1", //用户编号
  7. "userInfoJson": "" //用户信息json字符串有就传,目前没有项目使用
  8. }

(1)*from字段需要在yurun-service-api中JWTConstant中定义新增系统的编号枚举类,已有枚举类如下:

  1. public enum From {
  2. //BI后台
  3. BICENTER("BICENTER", "1"),
  4. //轨迹APP
  5. BITRACK("BITRACK", "2"),
  6. //电商平台MALLADMIN
  7. MALLADMIN("MALLADMIN", "3"),
  8. //X6-系统用户
  9. X6SYSTEM("X6SYSTEM", "4"),
  10. //X6-普通用户
  11. X6CUSTOM("X6CUSTOM", "5"),
  12. //电商平台MALLSHOPPER
  13. MALLSHOPPER("MALLSHOPPER", "6");
  14. //需要新增 拍卖枚举类
  15. .......
  16. private final String info;
  17. private final String value;
  18. From(String info, String value) {
  19. this.value = value;
  20. this.info = info;
  21. }
  22. public String getInfo() {
  23. return info;
  24. }
  25. public String getValue() {
  26. return value;
  27. }
  28. }

(2)channel的概念参考接口文档附录B
image.png

2.出参:

JwtResponse

  1. {
  2. "token": "a157bcae-071f-48c6-9ff7-1de2b06898e5",
  3. "refreshToken": "44d12417-ebeb-4686-955e-aec1e4fca2d8",
  4. "userId": "1"
  5. }

3.参考接口:

yurun-service-bi: /API120301 /API120101 /TRACK100101

3.退出登录

3.1根据token退出登录 /clearLoginByToken

3.1.1入参:

  1. {
  2. "token":"a157bcae-071f-48c6-9ff7-1de2b06898e5"
  3. }

3.1.2无出参

3.1.3使用实例

authModify分支下的yurun-service-bi中的 /TRACK100102
具体代码如下:

  1. @ApiOperation(value = "登出", notes = "登出", httpMethod = "POST",
  2. response = AjaxResult.class,
  3. produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  4. @PostMapping(value = "/TRACK100102")
  5. public AjaxResult logout(@RequestHeader(value = JwtConstants.HEADER_TOKEN) String token) {
  6. try {
  7. String accessToken = token.split(" ")[1];
  8. authService.clearLoginByToken(accessToken);
  9. return AjaxResult.ok();
  10. } catch (Exception e) {
  11. logger.error("登出失败", e);
  12. return AjaxResult.error();
  13. }
  14. }

3.2清理指定channel用户登录信息/clearLoginByUserId

3.2.1入参

  1. {
  2. "userId":"1", //用户编号
  3. "from":"5", //系统来源
  4. channels:["1","3"] //清除channel1,3 用户编号为1的系统来源为5的用户登录信息
  5. }

3.2.2无出参

3.3清除其他端/clearOtherTerminal

3.3.1入参

  1. {
  2. "userId":"1", //用户编号
  3. "from":"5", //系统来源
  4. channels:["1","3"]//用户编号为1的系统来源为5 channel1,3的用户登录信息不被清除,而其他channel 被清除
  5. }

3.3.2无出参