是否有良好的库或逻辑来创建这个:用户识别的持久(几年)会话。像Gmail和Facebook这样的会话管理将是奖金。
答案 0 :(得分:7)
您需要设置Cookie和会话的混合。请记住,会话只会持续到浏览器关闭或甚至最差,直到2个请求之间的时间超过服务器规定的时间限制。
首先为了使这一切成为可能,你被迫使用cookies。为此,请注意,如果用户更改浏览器或刷新其cookie,则永久会话将停止工作。
第二件事是在cookie中创建一个只能从该位置为该用户使用的哈希。例如:使用 REMOTE_ADDR 的哈希值和数据库中的用户ID。因此,它不会成为安全威胁,因为除了现在没有做太多的哈希之外,没有任何信息可以从cookie中推断出来。
第三,当用户发送请求时,检查该cookie是否存在并使用散列与数据库中的相同散列进行比较。 (您可以将此哈希放在用户的表中,但我建议创建另一个表,以便用户可以从多个位置进行通用登录)数据库中的此哈希将是检索您要登录的帐户的关键。
第四,当您找到要登录的帐户时,请记住更新cookie中的哈希值,显然此时使用php中的 SESSION 系统继续正常处理您的应用程序。
这种方法已被证明对许多“基于记住我”的网站都很成功......
答案 1 :(得分:1)
您会混淆会话和Cookie。会话是一个根据定义结束的东西 虽然cookie可能永远持续下去。
因此,设置一个cookie并在收到id时启动另一个会话。
答案 2 :(得分:0)
登录用户时,将会话cookie到期时间设置为+ 10年或任何您想要的。