认证服务-C端

c端认证服务

  • 协议
    oauth协议查询用户是否存在
    oids协议查询用户拥有的权限缓存到自包含的jwt对象
  • jwt对象
    由客户端本地持有缓存,大大减轻了服务端的压力
    访问令牌,过期时间短30min
    刷新令牌,过期时间长7天
    访问令牌过期不用跳转登陆页面,自动由刷新令牌申请新的访问令牌

其他业务微服务如何验证jwt对象
使用与认证服务相同的公钥对jwt对象的payload部分重新计算签名
然后对比签名是否与jwt对象的签名部分一致
认证服务签发jwt对象时,将客户端指纹比如设备id嵌入到payload部分,同理其他微服务验证时从payload部分提取客户指纹验证是否一致

  • jwt对象为什么由客户端本地持有
  1. 减轻服务端查询压力,想象一下如果未缓存,每一个用户请求都需要进行鉴权
  2. 由于jwt对象自包含,认证服务签发一个jwt后,其他业务微服务都可以直接对jwt对象进行密码学验证后即可使用,无需访问认证服务实现了解藕,从而实现了【单点登陆】功能
  3. jwt在客户端存储所以服务端无状态,方便横向扩展,不存在需要对权限对象进行复制的问题
  • 风险
    一致性问题:jwt对象何时更新
    -》 设置较短的过期时间
    将某个签发但未过期的token加入黑名单过滤
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容