我正在构建一个AngularJS应用程序,该应用程序与使用身份验证令牌对用户进行身份验证的API进行交互。一切似乎都运行良好,但我正在努力在请求之间正确地保持身份验证令牌。
目前,当用户使用正确的凭据登录时,系统会返回authToken
,并且我会在$rootScope.authToken
上进行设置。我也在为将来的请求发送该身份验证令牌,但如果我重新加载重新加载,则F5 $rootScope
的网页会被清除,我必须再次进行身份验证。
我知道我可以将authToken存储在cookie中,但这是最安全的方式吗?我最好使用本地存储来存储令牌吗?如果使用本地存储,当用户重新启动浏览器时,是否会清除?我理想情况下登录会持续几天。
答案 0 :(得分:1)
首先,我不确定authToken
的格式是什么,但localStorage
不应该用于任何敏感数据。只要您的localStorage
通过某种形式的加密或随机数进行相对防篡改,使用authToken
就可以很好地工作(并且可以继续浏览器重启)。
基本上,你应该小心,因为价值是"可见"对于所有客户端用户,应该假设可以修改或增加。
您是否考虑过撤销登录会话?例如,如果要注销应用程序的所有活动会话,您将如何执行此操作?由于authToken
存储在客户端,因此您可能需要向服务器端添加时间戳(或其他一些唯一值)。