开发者社区> 问答> 正文

关于单点登录ticket在redis中存储问题

用户通过在单点登录服务器登陆,登录成功后,单点登录服务器分配给该用户一个ticket。然后单点登录服务器将该ticket做为key,用户名做为value,存储在redis中。通过判断该key是否是有效的来判断该用户会话有效。
后续会有服务通过向单点登录服务器发送一个ticket来验证该ticket是否有效,来判断该用户是否登录了。
但是这样会有个问题,某个用户肯能不停的登录,这样单点登录服务器每次都会将该ticket存储在redis中,虽然该ticket有过期时间,但有可能在短时间内在redis中写入大量的ticket。
不知这个有什么好的解决方法吗?

展开
收起
爵霸 2016-03-09 09:40:37 3512 0
1 条回答
写回答
取消 提交回答
  • 如果你说的是接口遭到恶性调用的话,就属于DDOS防护方面的了,我的回答也就不适用了。
    其实你的问题只要做过这个功能的都会遇到,就是如果判断用户已经登录,说使用cookie和session的肯定是没具体做过,这里涉及的是不同浏览器登录的情况,cookie和session都是没用的。
    我当时的做法是在redis中再维护一个关系:用户名-->ticket,这样就可以根据用户名找到之前的ticket,也就可以判断出用户是否重复登录了。

    2019-07-17 18:55:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载