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