我使用的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