让用户在再次访问同一页面时登录?

nev*_*ame 5 php cookies session

目前我正在使用session来登录用户.但当我关闭浏览器并再次打开它时,我必须再次登录.如何让用户登录2周.

是通过饼干呢?

Bal*_*usC 9

所以你想要一个"在这台电脑上记住我"选项吗?这是一种与语言无关的方法:

  1. 至少创建一个数据库表cookie_iduser_id列.如果有必要还添加一个cookie_ttlip_lock.我想这些列名称本身就说明了一切.
  2. 在首次登录时(如果需要选中"记住我"选项),生成一个长的,唯一的,难以猜测的密钥,该密钥代表并将其cookie_id与DB一起存储在DB中user_id.同时将其存储为具有前指定cookie名称的cookie的cookie值.例如remember.给cookie一个很长的寿命,例如一年.
  3. 在每个请求中,检查用户是否已登录.如果没有,则检查cookie_id与cookie名称关联的cookie值remember.如果它存在且根据数据库有效,则自动登录与之关联的用户user_id并再次推迟cookie年龄.

至于安全风险,如果密钥很长且足够混合(至少30个混合字符),则强制登录的机会可以忽略不计.您可能已经了解了可选列的ip_lock用途.它应该代表用户的IP地址.您最终可以添加一个额外的复选框"锁定登录到此IP(仅当您具有静态IP)",以便服务器可以使用用户的IP地址作为额外验证.

如果一个人在没有IP锁的情况下劫持了cookie的价值怎么办?好吧,对此没什么可做的.和它一起生活."记住我"的事情很有趣,因为每个论坛和帐户劫持都不会对那里造成太大影响,但我肯定不会将它用于管理面板和那种控制服务器端内容的网页.

毕竟这是相当直接的.祝好运.


Jan*_*čič 0

是的。您使用 cookie 来实现“自动登录”(或“记住我”)功能。

这个谷歌搜索或SO搜索结果应该为您指明正确的方向。