我使用的Redis作为会话存储,的Redis作为会话存储,无效的用户的所有会话
存储会话像这样
[NameSpace]:[UniqueId] -> [email_id]
这是问题所在,
时用户重置密码,我如何使该用户的所有会话无效?
这里是解决方案我想出了,
存储电子邮件ID为
存储会话像这样
[NameSpace]:[UniqueId]-[email_id] -> [email_id]
UID的一部分,那么我可以用SCAN MATCH
删除所有当用户重置密码时使用密钥。
维护的UID
的列表存储会话后像
[NameSpace]:[UniqueId] -> [email_id]
保持与
[NameSpace2]:[email_id] -> [ "[UniqueId]", "[UniqueId]" ]
一个单独的列表,并使用无效列表中的会话。 (我可以用redis
命名空间发布订阅来维持上述名单的有效性)
我的问题是
- 什么是推荐的方式做批量会话无效在Redis的?
- 在cookie中存储像
[UniqueId]-[email_id]
这样的会话标识是否存在安全问题?
PS:我知道有类似的问题,但我觉得它很嘈杂,面向express.js,而不是通用的redis和用户会话。 (Invalidating all of a single user's sessions in express.js)
此外还有一些更多细节在这里:https://groups.google.com/d/msg/redis-db/Vm7c4gvXgl8/vdRw-z1YuxgJ – 2015-02-06 15:49:57
感谢您的答案,我会与我的团队在这里讨论。 关于你的第二个答案,如果有人进入app/db服务器,我们无论如何都完成了,他们无论如何都可以读取键和值。所以这不应该是我想的问题。 – Gautam 2015-02-06 15:59:39