【发布时间】:2018-07-25 08:45:20
【问题描述】:
我正试图弄清楚如何在我正在开发的应用程序中实现“记住我”。目前我的实现是这样的。
- 用户登录并请求被记住
- 服务器使用电子邮件/密码验证用户
- 如果验证成功,我会使用用户的电子邮件和存储在服务器上的密钥生成 JSON Web 令牌。
- 然后令牌作为 cookie 发送回客户端。但同时使用 bcrypt 对令牌进行哈希处理,并将用户信息存储在数据库中。
- 现在,当用户稍后访问该页面时,该 cookie 会在页面加载并根据数据库中存储的哈希进行验证时发送到服务器。
对我来说,这“似乎”是安全的,因为令牌本质上是用户的密码,并在服务器端进行了相应的处理。但是,我不确定这是否真的安全,或者我是否缺少某些东西。
【问题讨论】:
-
我看到的一个问题是有人可以将 cookie 值复制到另一台计算机并以该用户身份登录。为了解决这个问题,你可以在加密算法中使用一些关于用户的秘密——也许是他们的密码?
标签: javascript reactjs security jwt bcrypt