如何注销用户密码更改后创建的所有会话?

时间:2015-07-15 14:43:18

标签: php session

我存储我的会话ID Redis,我的会话ID是全局唯一的,每次登录都会生成一个新的会话ID,所以即使是同一个用户仍然会有不同的会话ID。所以我无法破坏用户的会话,因为我无法找到它。那么我该如何设计,以满足我的需求?

2 个答案:

答案 0 :(得分:0)

会话是一个安全问题。我建议使用库/框架来完成它。如果您手动推出自己的解决方案并且操作错误,则会将用户打开至会话hijackingprediction和/或fixation。那些都不好。

如果你正在使用一个会话库并且不可能做你想做的事而不认真对待,那可能是有原因的。

如果你真的想要自己而不是使用会话库,请启动here

答案 1 :(得分:0)

你可以:

  • 为每个会话创建设置时间戳createdAt
  • 在用户表格中设置时间戳sessionExpire
  • user.sessionExpire方法
  • 中更新resetPassword
  • 在每个记录的请求上(如果每次刷新或其他页面浏览,如果设置了用户会话),请检查已记录用户的user.sessionExpire,然后将其与当前session.createdAt进行比较
  • if session.createdAt < user.sessionExpire然后退出