您好,我正在编写一个身份验证登录功能,我需要添加典型的记住我复选框以使 session 不过期。
这样做的最佳做法是什么?
我考虑添加一个 cookie 并存储在用户 ID 中,然后当用户第一次浏览该站点时,检查该 cookie,如果存在我从 cookie 中获取用户 id 并创建 session ,这是正确的吗怎么做?安全性如何?
最佳答案
这是我的做法:
创建一个名为“remember_code”的列,并在他们勾选“记住我”时生成一个随机生成的哈希值
使用 remember_code 和用户身份(登录用户名或电子邮件)设置 Cookie。
当他们尝试重新登录时,检查两者:数据库中的 remember_code 以及用户名/电子邮件,如果它们正确,则自动登录。
这种做法通常是安全的,但要仔细检查,您可以检查 IP 或用户代理以确保是正确的用户。
关于php - Codeigniter session cookie 和记住我选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455580/