在AngularJS中存储身份验证令牌,rootScope或sessionStorage是安全的

时间:2016-08-05 12:54:54

标签: angularjs security

我正在开发一个基于AngularJS的应用程序,它将与一个RESTful服务进行交互。从服务验证后返回一个令牌。我需要在每个请求中存储令牌和拦截。我想了解哪个更好地存储令牌,rootScope或sessionStorage?

2 个答案:

答案 0 :(得分:0)

$ rootScope和会话存储设计用于两个不同的角色。 $ rootScope只是一个JavaScript变量,可以在应用程序范围内访问值。会话存储是一种Web浏览器功能,允许您将数据保留在页面刷新之外,或者以其他方式维护会话。在$ rootScope上存储值只不过是在JavaScript变量中存储一个值;如果刷新页面,则值消失。您想要的是会话存储或cookie,以便您的令牌在页面刷新之后保持不变。

查看ngStorage

答案 1 :(得分:0)

$ rootScope是一个将在页面刷新时消失的变量。因此,我建议你使用cookie或sessionStorage。

当用户关闭他/她的浏览器标签时,SessionStorage将消失。如果这不是首选案例,那么使用cookie。

要为$ http请求添加默认标头身份验证器,请使用拦截器,您可以在此处找到文档:

Interceptor documentation

拦截器的代码如下所示:

bind '"rr":reverse-search-history'

另请查看angular $ cookie服务的文档:

Cookie documentation