单点登录三种常见方式
第一种:session广播机制实现
相当于复制session,但是消耗资源,模块很多复制很多次消耗资源,造成数据重复,空间浪费
第二种:使用cookie+redis实现
cookie客户端技术:每次发送请求,带着cookie值进行发送
redis:基于key-value实现
1,在项目中任何一个模块进行登录,登录之后,把数据放到两个地方
(1)redis:在key中放生成唯一随机值(ip,用户id等),在value中放用户数据
(2)cookie:把redis里面生成key值放到cookie里面
2,访问项目中其他模块,发送请求带着cookie进行发送,获取cookie值,用cookie值到redis中进行查询,如果能查到key值则视为用户已登录,不需重复登录
第三种:使用token实现
token:按照一定规则生成的字符串,字符串可以包含用户信息
1.在项目中某个模块进行登录,登录之后,按照规则生成字符串,登陆之后用户信息包含到生成字符串里面,把字符串返回(字符串可以通过cookie返回,或通过地址栏返回)
2.再去访问项目其他模块,每次访问在地址栏带着生成字符串,在访问模块里获取地址栏字符串,根据字符串获取用户信息。如果可以获取到,就视为已登录,不需重复登录