mysql登录单点_单点登录 - simple_孙 - 博客园

基本是通过cookie和sessionid实现登录状态保持的。

cookie是以key-value的形式保存在浏览器端的。但是cookie是有域名边界的,就是说同一个根域名(比如*.baidu.com)下可以共享cookie,但是不同的根域名就不行了。

sessionid就是一个键值对,不同的语言和web服务器使用的session键值不一样,例如Tomcat服务器的值JSESSIONID,但是其他服务器就不是这个值了,所以不能跨不同的服务器。

所以如果说整个系统使用统一的根域名,并且所有的后台系统都适用同样的服务器,那么利用上面两个,如果是多实例的,再加上Redis的session功能是可以实现单点登陆的。

但是对于不同的根域名,并且后端采用不同的web服务器的话,就要依赖SSO了,有一个专门认证的服务器。所有的请求都会先请求认证服务器,服务器根据登录信息返回加密的Data和Token。然后返回给浏览器并重定向到实际的应用服务器上,请求连接上带有Data和Token,应用服务器使用公钥证书将Data和Token信息解密出来,并用以认证,认证成功,就会产生一个sessionid,之后该请求端就可以一直使用该sessionid来持续访问该应用服务器,如果应用服务器是多实例的,则可以使用Redis来实现session共享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值