解决多个服务器登陆问题:
1、nginx使用iphash策略
2、单点登陆
实现单点登陆的方式
使用redis/mysql/
登陆信息数据生成一个UUID存储到cookie中,类似于服务器存储session
使用token令牌
1、用户登陆,验证成功,生成一个token,返回给浏览器用户;用户浏览器带着这个token再去访问服务器的时候,根据服务器里面的key去解析token,解析到用户信息;
2、当负载均衡访问到其他服务器时,因为是提供的相同的服务,所以这些服务器里面的key都是相同的,所以当用户访问其他服务器,一样可以解析到token里面的用户信息;
3、扩展:微博使用微信登陆实现原理,微博请求微信,将登陆信息发送给微信,微信验证成功之后,生成token,并将token信息返回给微博;当客户再请求微博时,微博会将token信息再次请求微信,使微信解析token并返回微博用户信息;
用户登陆过程
1、用户输入用户名、密码登陆,通过安全框架去验证,验证成功返回一个token
2、将用户信息,通过token的value作为key存入数据库缓存表中
3、将token保存再浏览器中
4、用户之后访问页面,通过key去解析token,解析出的token值,再通过token的value去缓存表中查出用户信息