2016-01-27 52 views
0

我正在制作一个网站,使用PHP会话进行“登录”并拥有一个帐户。默认情况下,由于Cookie过期,用户在关闭浏览器时会注销。我想为网站实现“记住我”或“让我登录”功能。我已经考虑过两种可能的解决方案。PHP会话记住我功能

  1. 扩展会话cookie的寿命,从而当用户关闭他们的浏览器
  2. 添加第二个饼干与标识所述用户字符的随机生成的序列它不会过期。该密钥将与数据库中用户的ID相关联。当用户访问该站点时,将从数据库中检索key/id对,如果它们匹配,则用户将登录。显然,Cookie将仅为http。

每种类型的方法有哪些优缺点,是否会造成严重的安全风险?另外,有没有更好的方法来解决这个问题?谢谢。

+2

单独延长会话cookie生存时间不会有帮助 - 您需要将session.gc_maxlifetime设置得更高,否则GC可能会同时清理会话文件。 //这就是说,你不应该为此使用会话(已经提到的GC是一个因素 - 你很可能会得到很多“孤立”的会话文件,仍然占用硬盘空间)。使用具有足够安全标记值的不同cookie来识别之前已登录的用户。 – CBroe

回答