[NameSpace]:[UniqueId] -> [email_id]
以下是问题:
当用户重置密码时,如何使该用户的所有会话无效?
以下是我想出的解决方案:
将电子邮件 ID 存储为 UID 的一部分
将会话存储如下
[NameSpace]:[UniqueId]-[email_id] -> [email_id]
当用户重置密码时,我可以使用SCAN MATCH
删除所有键。
维护UID列表
存储会话后,可以维护一个UID列表
[NameSpace]:[UniqueId] -> [email_id]
维护一个独立的列表
[NameSpace2]:[email_id] -> [ "[UniqueId]", "[UniqueId]" ]
并使用列表使会话失效。(我可以使用
redis
命名空间pubsub来维护上述列表的有效性)
我的问题是:
- 在redis中进行批量会话失效的推荐方法是什么?
- 将会话ID存储为
[UniqueId]-[email_id]
这样的方式在cookie中存在安全问题吗?
PS:我知道有一个类似的问题,但我觉得它很嘈杂,并且更适用于express.js而不是redis和用户会话的通用问题。 (在express.js中使单个用户的所有会话无效)