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, "令牌已失效"); } }
扫一扫访问 Blade技术社区 移动端