angularjs - 在 AngularJS 中持久化身份验证 token

标签 angularjs authentication persistence

我正在构建一个 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/

相关文章:

javascript - 从 Controller 到输入字段的 Angular 绑定(bind)

angularjs - 像AngularJS中的模板引用一样吗?

ios - 确认 iPhone 用户

php - 持久性谷歌 OpenID+OAuth?

javascript - 没有ng-repeat的AngularJS过滤对象的单个属性

authentication - OWIN - 将应用程序信息关联到授权服务器

Python 'shelve' 在每次操作后将自身写入磁盘

java - Jetty 持久 session - 只写?

android - 在 OnSharedPreferenceChangeListener() 中使用 commit()

javascript - AngularJS - Bootstrap Material Datetimepicker 不工作