单点登录实现

3台服务器抗击450个请求,而且不能让用户登录三次

Cookie最多能存储4k的数据,一般是简单的串

采用sessIon保存到一台服务器的做法,在大型网站构建中,是不合理的。因为session数据不同的服务器之间不能共享。会导致用户访问网站时,会有多次校验。如果该服务器中没有用户的信息,则会出现用户重复登录的问题。








想法:
1.只要用户登录,添加标识符 url:www.jt.com/jtems/1222.html?sessionId=11111
安全性没有办法保证,每次请求都拼接sessionId效率低
(URL重写技术)
2.IP_hash 绑定一台服务器访问,负载不均。服务器宕机直接影响用户的体验。
3用户输入用户名密码后,连接后台。username-u,p-password。如果校验不成功放回E-Error。如果校验成功,把用户信息放到Redis集群的K,V结构中,K是加了前缀并加密的串,V存用户的json,并回传一个Token。一般用户登录,可以7天免密登录。所以设定Redis和Cookie的7天的超时时间。放回结果弄成TOKEN放到客户端的cookie中。




实现步骤

1.用户输入用户名和密码通过前台的服务器进行用户的登录操作
2.当前台接收到用户的登录请求后,将数据传递给单点登录系统之后进行校验。
3.根据用户名和密码进行数据的校验,如果用户名和密码都不正确,直接告知用户(201)用户名或者密码错误。
如果用户名和密码正确,则通过加密算法(md5hash)将key进行加密,通过将用户信息转化为JSON(串)数据保存到redis中。
4.将加密后的秘钥(TOKEN)返回给用户,将用户token经过前台中转。最终将token数据保存到用户的浏览器的Cookie中。
5.登录后需要实现登录效果

你可能感兴趣的:(单点登录实现)