我正在构建一个 AngularJS 应用程序,该应用程序与使用身份验证 token 对用户进行身份验证的 API 交互。一切似乎都运行良好,但我正在努力寻找一种在请求之间正确保留身份验证 token 的方法。
目前,当用户使用正确的凭据登录时,authToken
已返回,我将其设置为 $rootScope.authToken
.我还将发送该身份验证 token 以供将来的请求使用,但是如果我执行硬重新加载,请使用 F5 $rootScope
重新加载网页被清除,我必须再次进行身份验证。
我知道我可以将 authToken 存储在 cookie 中,但这会是最安全的方式吗?我最好使用本地存储来存储 token 吗?如果使用本地存储,当用户重新启动浏览器时,它不会被清除吗?理想情况下,我希望登录能持续几天。
最佳答案
首先,我不确定您的 authToken
的格式是什么只是 localStorage
不应用于任何敏感数据。使用 localStorage
只要您的 authToken
运行良好(并且在浏览器重新启动后仍然存在)通过某种形式的加密或随机数相对防篡改。
本质上,您应该小心,因为该值对所有客户端用户都是“可见的”,因此应该假设可以修改或增加。
您是否考虑过撤销登录 session ?例如,如果您想注销应用程序的所有事件 session ,您会怎么做?自 authToken
存储在客户端,您可能需要为其添加时间戳(或其他一些唯一值),以便在服务器端进行检查。
关于angularjs - 在 AngularJS 中持久化身份验证 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23640476/