用户登录模式介绍
1.0 单一服务器模式
早期单一服务器,用户认证。缺点:单点性能压力,无法扩展
2.0 单点登录SSO(single sign on)模式
SSO(single sign on)模式有三种常用方法。
第一种:session广播机制实现。
是通过session复制来实现多个微服务登录。
第二种:使用cookie+redis实现。
1、在项目中任何一个模块进行登录,登录之后,把数据放到两个地方
(1)redis: key:生成唯一随机值(ip,用户id…) value:用户数据
(2)cookie:把redis里面生成key值放到cookie中
2、访问项目中其他模块,发送请求带着cookie进行发送,获取cookie值,拿着cookie值到redis对key值进行查询。
优点 :用户身份信息独立管理,更好的分布式管理。可以自己扩展安全策略
缺点:认证服务器访问压力较大。
第三种:Token模式。
使用token模式实现。
1、在项目某个模块登录后,按照规则生成字符串,把用户信息包含到生成字符串里面,把字符串返回。返回方法有两种
(1)通过cookie返回
(2)通过地址栏返回
优点:
无状态: token无状态,session有状态的
基于标准化: 你的API可以采用标准化的 JSON Web Token (JWT)
缺点:
占用带宽
无法在服务器端销毁