什么是单点登录呢?
我们拿淘宝和天猫来举个例子吧,他们是两个不同的应用,但是我们在浏 览器中登录过其中的一个网站,在访问另一个网站时,就不再需要我们登陆了。通俗来说就是一系列相关的应用,我们只需要登录其中的一个就可以随心所欲的访问其他的了,不用再忍受每访问一个网站,登陆一次的痛苦了。
还想要了解更详细的介绍,可参考百度百科
单点登录百度百科
单点登录的实现方式
相信大家看过单点登录的概念后,已经有了一个认识,单点登录的实现方式有多重,本文只介绍通过验证token的方式来实现单点登录。像现在大部分的网站,用户登陆成功后5分钟内没有任何操作的话,就会退出登录,需要用户重新登录,本文重点讲解的是关于token的时效性管理。有过redis基础的同学们都知道,redis的可以设置过期时间,这个特性很适合用来管理我们的token。
或许有人会有疑问,redis的key失效了,客户端如何感知那些失效的key呢?
其实在redis.conf文件中有这段配置
<#>Redis can notify Pub/Sub clients about events happening in the key space.
<#>This feature is documented at http://redis.io/topics/notifications
<#>
<#>For instance if keyspace events notification is enabled, and a client
<#>performs a DEL operation on key “foo” stored in the Database 0, two
<#>messages will be publish

本文介绍了单点登录的概念,通过举例淘宝和天猫的关联应用来阐述。主要讨论了利用Redis的key过期时间管理token的时效性,当Redis的key(token)过期时,通过订阅`__keyevent@0__:expired`事件来感知失效的key,从而实现单点登录的退出机制。文章通过实际操作展示了如何配置Redis和订阅过期key事件。
最低0.47元/天 解锁文章
1456

被折叠的 条评论
为什么被折叠?



