如何实现安全"记住我"

时间:2018-02-14 17:22:11

标签: javascript reactjs security jwt bcrypt

我正在试图弄清楚如何实施"记住我"进入我正在努力的应用程序。目前我的实现看起来像这样。

  1. 用户登录并请求记住
  2. 服务器使用电子邮件/密码验证用户
  3. 如果验证成功,我会使用用户的电子邮件和存储在服务器上的密钥生成JSON Web令牌。
  4. 然后将令牌作为cookie发送回客户端。但同时使用bcrypt对令牌进行哈希处理,并将其存储在数据库中的用户信息中。
  5. 现在,当用户稍后访问该页面时,会在加载页面时将cookie发送到服务器,并根据数据库中存储的哈希进行验证。
  6. 对我来说这"似乎"安全,因为令牌基本上成为用户的密码,并在服务器端进行相应的处理。但是,我不确定这是否真的是安全的,或者是否有我遗漏的东西。

1 个答案:

答案 0 :(得分:0)

您可以使用HTML5 Web Storage API代替Cookie。它更加安全,并得到所有现代浏览器(IE8 +)的支持。

LocalStorage是围绕Web Storage API的一个很好的界面。它是一种客户端持久存储形式,没有任何过期(直到用户清除它)或开发人员通过JavaScript完成它。

您可以进一步研究这个答案difference between Cookie and LocalStorage