我正在使用https://stackoverflow.com/a/6337021/999516中显示的Bcrypt将密码存储在数据库中,并且我正在尝试添加'remember me'功能以保持用户使用Cookie。< / p>
当用户成功登录时,我会重新创建哈希并在数据库中更新它。如果用户检查了remember选项,我创建一个带有USER_ID的cookie,到期,现在我不明白:我必须在cookie中存储哪个值?完整的char(60)哈希?
答案 0 :(得分:2)
我建议实现一个单独的“记忆”哈希值存储在cookie中,相应的数据库表将该哈希值与特定的用户ID和到期时间相关联。将实际用户ID存储在cookie中是一个非常糟糕的想法,因为您无法验证它们是否只是更改了存储在cookie中的用户ID。通过在cookie中存储完全独立的哈希,您可以轻松地在数据库表中查找它所属的用户,并在其有效且未经修改时自动重新登录。