微服务单点登录三种常见方式

  • Post author:
  • Post category:其他




第一种:session广播机制(session复制)

当用户在服务1 中登录之后,会把登录信息放在session中,然后复制session对象分发给其他服务。

**缺点:**如果服务过多,session需要复制很多次,会造成资源的损耗



第二种:使用cookie+redis实现

一、在项目中任何一个模块登录,登陆之后会把数据放到两个地方

1.redis:使用key-value进行存储,key:生成唯一值(id,UUID等),将用户数据作为value存进去

2.cookie:把redis里面生成的值放到cookie里面

二、在项目中访问其他模块时,发送请求会带着cookie一起发送,然后获取到cookie中的key,去redis寻找对应的value,如果找到了就是登录,没找到就是未登录。



第三种:使用Token实现

Token:按照一定规则生成的字符串,字符串可以包含用户信息

一.在项目中的某个模块登录之后,会根据规则生成对应的字符串,把登陆之后的用户包含在字符串里面,把字符串返回

1.通过cookie进行返回

2.把字符串放在url里面返回

二、再去访问其他模块,每次访问在地址栏都带上字符串,在访问模块里面获取地址栏字符串,根据字符串获取用户信息,如果可以获取到就是已登录,获取不到就是未登录。



版权声明:本文为qq_43582366原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。