我正处于一个项目的开始,当用户进行身份验证时,该项目将具有“记住我”选项。
我的用户的数据库表具有以下用于身份验证的基本结构:
- id :用户注册时生成的随机数。(钥匙)
- username :用户选择的用户名,可以更改为另一个唯一的用户名。
- hash :设置密码时使用“phpass”创建的密码的哈希值。
我想知道一种使用 cookie 和 MySQL 让用户保持登录状态的安全方法,即使在多台计算机上也是如此。
我希望我可以使用相同的 cookie 来存储临时会话或“记住我”部分。我已经阅读了有关令牌以及将所有用户信息散列到 cookie 中的信息,但它安全吗?我检查了用户身份验证后使用的 Facebook cookie,并且有用户 ID 输入,我想做什么真的有必要吗?
如果我决定将信息散列到 cookie,我应该使用可能更慢的“phpass”还是简单的 MD5 函数,看到身份验证验证将出现在每个页面和每个 AJAX 请求中?每次验证登录时是否应该更新用户令牌?
最后,我最好的选择是什么?我知道有很多类似的问题,但我没有找到类似“最好的方法”来做到这一点。在每一篇文章中,我都发现这个主题有一些不同和矛盾的地方。我想知道一种安全干净的方法。