持久的会议

时间:2011-10-22 13:04:20

标签: php session user-identification

是否有良好的库或逻辑来创建这个:用户识别的持久(几年)会话。像Gmail和Facebook这样的会话管理将是奖金。

3 个答案:

答案 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年或任何您想要的。