javascript - 如何实现安全 "Remember me"

标签 javascript reactjs security jwt bcrypt

我正在尝试弄清楚如何在我正在开发的应用程序中实现“记住我”。目前我的实现看起来像这样。

  1. 用户登录并请求被记住
  2. 服务器使用电子邮件/密码验证用户
  3. 如果验证成功,我会使用用户的电子邮件和存储在服务器上的 key 生成一个 JSON 网络 token 。
  4. 然后将 token 作为 cookie 发送回客户端。但同时使用 bcrypt 对 token 进行哈希处理,并将用户信息存储在数据库中。
  5. 现在,当用户稍后访问该页面时,该 cookie 会在页面加载并根据数据库中存储的哈希值进行验证时发送到服务器。

对我来说,这“似乎”是安全的,因为 token 本质上成为用户的密码,并在服务器端进行相应处理。但是,我不确定这是否真的安全,或者我是否遗漏了什么。

最佳答案

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

LocalStorage是围绕 Web Storage API 的一个很好的接口(interface)。它是一种客户端持久存储形式,不会过期(直到用户清除它)或开发人员通过 JavaScript 完成。

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

关于javascript - 如何实现安全 "Remember me",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792924/

相关文章:

javascript - ReactJS 应用程序中的 Chart.js : no terminal error, 但没有渲染

javascript - 未定义索引 PHPMailer 表单

javascript - jQuery UI 可拖动 : Custom Snap-To Method

javascript - 使用事件从字符串创建函数

reactjs - 如何使用 ReactJs 和 Hooks 对 Cloud FireStore 数据进行分页

安卓应用内支付安全问题

javascript - 在我的例子中,如何将 html 内容添加到我的 dom 中?

javascript - 如何在 React 中测试从子组件提升到父组件的状态?

security - 为什么将 localhost 添加到 SAN 列表被视为不安全?

windows - 在登录时运行具有提升权限的桌面应用程序