1

我有一个具有表单身份验证的网站:

1) 用户登录时可选择是否保持登录状态。

2)服务器生成token,保存到数据库,发送token cookie给浏览器。

请注意,当用户选择不保持登录时,当他关闭浏览器时,令牌 cookie 将过期,如果用户选择保持登录,令牌 cookie 将在他登录一年后过期。

3)当用户注销时,服务器会停用保存在数据库中的token,并删除浏览器中的token cookie。

问题是,如果用户选择不保持登录,如果他关闭浏览器,令牌 cookie 将过期,但保存在数据库中的令牌不会被停用 - 服务器将不知道用户是否关闭了浏览器。

我将如何停用数据库中未使用的令牌?

4

1 回答 1

0

在服务器端保留整个会话只是为了记住登录详细信息并不常见。我建议遵循 facebook/google 的设计:如果用户希望浏览器“记住他”,则生成一些随机安全的“访问令牌”cookie,作为该用户的最后一个有效访问令牌保存在用户表中。然后,当浏览器再次访问该网站时,它会发送该 cookie,服务器可以检查它是否与任何现有(有效)访问令牌匹配,从而登录用户。

于 2012-11-26T06:24:58.163 回答