单点登录(single sign on)sso
实现方式
- 第一种:session广播实现
session复制,如果服务较多,会造成资源浪费,会造成数据重复,浪费空间 (早期使用)
- 使用cookie+redis实现
1.在项目中任何一个模块进行登录,登录之后,把数据放到两个地方:
(1) redis,在key:生成唯一随机值(ip、用户id等等),在value:存放用户数据
(2) cookie:吧redis里面生成的key值放到cookie里面
2.访问项目中其他模块,发送请求带着cookie进行发送,获取cookie值,拿着cookie做事情:
(1)用cookie获取值,到redis进行查询,根据key进行查询,如果查询到数据就是已登录
- 使用token实现
1.在项目某个模块进行登录,登录之后,按照规则生成字符串,把登录之后用户包含到生成字符串里面,把字符串返回
(1)可以把字符串通过cookie返回
(2)把字符串通过地址栏返回
2.再去访问项目其他模块,每次访问在地址栏带着生成字符串,在访问模块里面获取地址栏字符串,根据字符串获取用户信息。如果可以获取到,就是已登录