登录设计方案取舍考虑

实现方案:

  1. cookie id + session
  2. jwt
  3. 单点登录

在微服务中的登录设计中,高QPS宽松场景、 低QPS安全准确性设计、性能、一致性、业务特性、改造成本、维护成本

在高QPS中适合,如果使用session方案,登录状态都放在分布式的缓存当中,需要拿token和去和缓存做比较,网络请求开销大,jwt的花销只有解码和校验。

jwt如果保存了权限字段,再过期前都无法被修改,所以一些涉及到管理人员权限严格的系统,例如邮件系统,OA系统,适合session,可以在服务端修改用户权限状态。
一致性的考虑: session 一致性好,服务端修改了立刻生效。
业务特性:jwt适合toC,客户量大的时候; session适合toB。
改造成本:追加一些新功能,例如限制登录数量,限制登录设备,jwt不好做,session在服务端就控制了。
维护成本:session维护成本更大,要考虑与分布式缓存IO性能、内存开销。

结合使用:登录校验使用jwt,用户状态(权限)放在session(redis)。

单点登录
认证中心有一套用户表,可能各个子系统拥有自己的用户表,那就需要子系统的用户和认证中心需要进行映射。
业务场景:适合用户不想在新的业务系统里注册账号,例如使用qq登录wegame。
对认证中心的性能压力大,对接的子系统多的话。
调用链往往比较复杂。
认证中心改造成本大,因为被多个子系统依赖,但单点登录一般有规范设计。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 登录鉴权是互联网信息交互中常见的话题,登录的实现方案有哪些呢? 常见的登录实现方案有一下几种:Cookie + S...
    赵客缦胡缨v吴钩霜雪明阅读 1,553评论 0 3
  • 单点登录的本质是:同一个用户只需要授信一次组织下的多个系统中的某一个子系统,授信一次过后服务端和客户端在通讯条件下...
    头发掉了阅读 583评论 0 3
  • oauth2实现单点登录 电子书资源见https://www.yuque.com/docs/share/37bd8...
    洋洋洒洒_6a20阅读 4,533评论 0 0
  • 寒假学习的小课题,把之前的笔记整理整理记录一下(长文警告)因为当时看到的东西涉及很多,所以有一些地方没有深入去探讨...
    折戟尘风阅读 2,104评论 0 7
  • 1. 微服务架构介绍 1.1 什么是微服务架构? 形像一点来说,微服务架构就像搭积木,每个微服务都是一个零件,并使...
    静修佛缘阅读 6,702评论 0 39