我正在尝试弄清楚如何在我正在开发的应用程序中实现“记住我”。目前我的实现看起来像这样。
- 用户登录并请求被记住
- 服务器使用电子邮件/密码验证用户
- 如果验证成功,我会使用用户的电子邮件和存储在服务器上的 key 生成一个 JSON 网络 token 。
- 然后将 token 作为 cookie 发送回客户端。但同时使用 bcrypt 对 token 进行哈希处理,并将用户信息存储在数据库中。
- 现在,当用户稍后访问该页面时,该 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/