0

我正在使用 Bcrypt,如https://stackoverflow.com/a/6337021/999516所示将密码存储在数据库中,并且我正在尝试添加“记住我”功能以保持用户使用 cookie 登录。

当用户成功登录时,我重新创建哈希并在数据库中更新它。如果用户检查了记住选项,我创建一个带有 USER_ID、过期时间的 cookie,现在我不明白:我必须在 cookie 中存储哪个值?完整的 char(60) 哈希?

4

1 回答 1

2

我建议实现一个单独的“纪念”哈希来存储在 cookie 中,并使用相应的数据库表将该哈希与特定的用户 ID 和到期时间相关联。在 cookie 中存储实际的用户 ID 是一个非常糟糕的主意,因为您无法验证他们是否只是更改了存储在 cookie 中的用户 ID。通过在 cookie 中存储一个完全独立的哈希,您可以轻松地在您的数据库表中查找它属于哪个用户,如果它有效且未修改,则自动将其重新登录。

于 2012-07-10T22:28:05.947 回答