0

我需要一种方法来维护会话,即使在用户关闭浏览器(直到用户单击注销)而不在数据库中存储会话之后

最好的方法是什么?

我可以将用户名 + 密码(散列)存储在 cookie 中吗?

4

2 回答 2

1

保存在过期时间较长的 cookie 中(比如 1 个月左右)。不必是密码散列,只是一些标识散列,存储在数据库以及用户端(比较),以便您进行比较。

于 2012-06-17T17:54:28.443 回答
1

当用户登录时,您应该生成一个随机令牌并 1)将其保存在您的数据库中,2)使用用户名和这个随机令牌设置一个 cookie。

然后,您应该创建一个函数来获取此 cookie 并将令牌与数据库中的令牌相匹配。如果令牌相同,您应该启动一个会话并生成一个新的。

使用随机令牌而不是密码,否则它将始终相同。

请记住,您的“用户是否登录”功能必须首先检查会话是否打开,否则它将为用户访问的每个页面重复此过程。

于 2012-06-17T17:55:14.030 回答