PHP 会话记住我功能


PHP Session Remember Me Functionality

我正在制作一个使用 PHP 会话"登录"并拥有一个帐户的网站。默认情况下,由于 cookie 过期,用户在关闭浏览器时会注销。我想在网站上实现"记住我"或"保持我登录"功能。我考虑了两种可能的解决方案。

  1. 延长会话 Cookie 的生命周期,使其在用户关闭浏览器时不会过期
  2. 添加第二个 Cookie,其中包含随机生成的用于识别用户的字符序列。此键将与数据库中的用户 ID 相关联。当用户访问站点时,将从数据库中检索密钥/ID 对,如果它们匹配,则用户将登录。显然,cookie 将只是 http

每种方法的优缺点是什么,它们是否会带来严重的安全风险?另外,有没有更好的方法来解决这个问题?谢谢。

会话cookie的生存期取决于php中的设置.ini(session.timeout和session.gc_maxlifetime)。优点是,整个会话都被记住(不仅是登录)

另请参阅 https://www.sitepoint.com/community/t/php-session-does-not-expire-on-closing-browser/6831/2

请记住,我应该由标识用户的cookie来完成,因为您可以更好地处理生命周期,并且它不会保存整个会话信息。

取决于你想记住什么。