你的单点登录是怎么调用的
问题:因为后台的服务器采用的是集群的部署方式,肯定有多台服务器.如果将用户的登
陆信息保存到服务器端,因为多个服务器之间不能共享 session.所以相互之间不同实现
Session 共享.导致用户频繁登陆.
初级:使用 Nginx 提供的 IP_Hash
高级用下面这种
原理:
实现步骤:
当用户登陆时,通过 nginx 访问 jt-web 中任意的服务器之后输入用户名和密码访问
JT-SSO 单点登录服务器.
获取用户的登陆信息查询数据库,校验用户名和密码是否正确.如果用户名和密码是正
确的,将用户信息转化为 JSON 串.之后生成加密的秘钥 TOKEN(MD5(盐值+随机数)).将
token:userJSON 保存 redis 中.并且将 token 信息返回给客户端(jt-web).
Jt-web接收到服务端数据时首先校验数据是否有效.如果数据准确无误,将token信息写
入到浏览器的 Cookie(4K)中
当用户再次访问 jt-web 时,首先应该获取用户的 Token 信息,之后查询 redis 缓存服务器
获取 userJSON 数据,之后将 userJSON 转化为 User 对象进行使用.实现免密登录.如果 token 数
据为 null,那么则让用户访问登陆页面.