携带帐号密码访问认证中心,认证中心校验合法后经过jwt生成token(消息体包含用户ID,过时时间)
而且以用户ID为key,token为value缓存到Redis中缓存
经过用户ID删除Redis缓存中对应的token服务器
用户携带token访问统一API网关,网关经过过滤器解析token获取用户ID,判断过时时间,
经过用户ID查询Redis缓存是否存在,再生成新的token(消息体包含用户ID,过时时间,用于服务与服务之间调用使用,过时时间能够设置1分钟左右),将新的token添加到请求头中带去资源服务器spa
须要携带网关生成的token去访问jwt
认证中心生成的token与网关生成的token使用的签名不能相同,这样能够确保用户没法直接访问资源服务器,只能经过网关去访问。token
在认证中心生成的token消息体中包含用户拥有的角色ID集合,访问网关时从缓存中获取角色与权限的关系,而后校验是否有权限访问。图片