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 类
{
*"channel": "5", //从请求的头部获取
"claims": {}, //额外参数,目前没有项目使用
*"from": "5", //系统来源编号
"permStrList": ["sys:view","sys:user:search"], //权限字符串列表
"userId": "1", //用户编号
"userInfoJson": "" //用户信息json字符串有就传,目前没有项目使用
}
(1)*from字段需要在yurun-service-api中JWTConstant中定义新增系统的编号枚举类,已有枚举类如下:
public enum From {
//BI后台
BICENTER("BICENTER", "1"),
//轨迹APP
BITRACK("BITRACK", "2"),
//电商平台MALLADMIN
MALLADMIN("MALLADMIN", "3"),
//X6-系统用户
X6SYSTEM("X6SYSTEM", "4"),
//X6-普通用户
X6CUSTOM("X6CUSTOM", "5"),
//电商平台MALLSHOPPER
MALLSHOPPER("MALLSHOPPER", "6");
//需要新增 拍卖枚举类
.......
private final String info;
private final String value;
From(String info, String value) {
this.value = value;
this.info = info;
}
public String getInfo() {
return info;
}
public String getValue() {
return value;
}
}
2.出参:
JwtResponse
{
"token": "a157bcae-071f-48c6-9ff7-1de2b06898e5",
"refreshToken": "44d12417-ebeb-4686-955e-aec1e4fca2d8",
"userId": "1"
}
3.参考接口:
yurun-service-bi: /API120301 /API120101 /TRACK100101
3.退出登录
3.1根据token退出登录 /clearLoginByToken
3.1.1入参:
{
"token":"a157bcae-071f-48c6-9ff7-1de2b06898e5"
}
3.1.2无出参
3.1.3使用实例
authModify分支下的yurun-service-bi中的 /TRACK100102
具体代码如下:
@ApiOperation(value = "登出", notes = "登出", httpMethod = "POST",
response = AjaxResult.class,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@PostMapping(value = "/TRACK100102")
public AjaxResult logout(@RequestHeader(value = JwtConstants.HEADER_TOKEN) String token) {
try {
String accessToken = token.split(" ")[1];
authService.clearLoginByToken(accessToken);
return AjaxResult.ok();
} catch (Exception e) {
logger.error("登出失败", e);
return AjaxResult.error();
}
}
3.2清理指定channel用户登录信息/clearLoginByUserId
3.2.1入参
{
"userId":"1", //用户编号
"from":"5", //系统来源
channels:["1","3"] //清除channel为1,3的 用户编号为1的系统来源为5的用户登录信息
}
3.2.2无出参
3.3清除其他端/clearOtherTerminal
3.3.1入参
{
"userId":"1", //用户编号
"from":"5", //系统来源
channels:["1","3"]//用户编号为1的系统来源为5的 channel为1,3的用户登录信息不被清除,而其他channel 被清除
}