单点登录问题

Blade 未结 0 1229
next
next 剑圣 2020-09-18 11:58

 1. 单点登录需要把token放到redis

 2. 单点登录共用的是一套用户体系

 3. 只需要有一个token就可以

 4. 从统一认证平台点击跳转到子系统的时候,用refreshToken获取最新token并设置到前端缓存这样就可以直接调用

 5. 从子系统跳转到另一系统,也通过refreshToken获取最新token并设置到前端缓存

 6. 这样多个子系统之间跳转就可以达到token不间断的目的

 7. 多个子系统其实只有生成一个token,如果开启了单用户登陆功能,那也是不会影响的



其中

 7. 多个子系统其实只有生成一个token,如果开启了单用户登陆功能,那也是不会影响的

第七点和网关代码是不是矛盾,跳转到其他系统通过refresh_token获取accesstoken 那前面的accesstoken 由下面网关代码判断 导致令牌失效


//判断 Token 状态
if (jwtProperties.getState()) {
   String tenantId = String.valueOf(claims.get(TokenConstant.TENANT_ID));
   String userId = String.valueOf(claims.get(TokenConstant.USER_ID));
   String accessToken = JwtUtil.getAccessToken(tenantId, userId, token);
   if (!token.equalsIgnoreCase(accessToken)) {
      return unAuth(resp, "令牌已失效");
   }
}


回答
  • 消灭零回复
提交回复