在AngularJS中保存用户信息的方法

时间:2017-10-26 06:46:11

标签: angularjs authentication angularjs-scope angularjs-rootscope cookiestore

我想了解保存用户信息的方法。

许多老年人建议使用$cookieStoreAuthentication等。

但是如何使用$rootScope

我的想法是,当用户登录时,将他/她的ID和密码保存到$rootScope

(命名为$rootScope.user_id = 'stupid';

这是危险的吗?

我不知道这个问题是否重复,但我找不到一个人在谈论使用$rootScope

更新

我的配置如下所示。

'根控制器'可以看到每个范围,所以即使我刷新页面,

$ rootScope值不会消失。

$stateProvider
.state('root.login',{
    url: '/login',
    controller: 'LoginCtrl',
    templateUrl: 'views/login.html'
})
.state('root.signup',{
    url: '/signup',
    controller: 'LoginCtrl',
    templateUrl: 'views/signup.html'
})
.state('root.main',{
    url: '/main',
    controller: 'MainCtrl',
    templateUrl: 'views/main.html',
})

2 个答案:

答案 0 :(得分:1)

在rootScope或Cookie中存储原始用户凭据的非常糟糕的方法。但是,您可以使用userToken或服务器端给出的会话对此进行存档。

userToken

的示例
  1. 将用户登录请求发送到后端服务器
  2. 服务器返回响应userToken
  3. angularjs将cookie中的userToken存储起来<​​/ li>
  4. 每次angularjs req to backend,都必须附加此userToken(通常放在标题中)
  5. 会话示例

    1. 将用户登录请求发送到后端服务器
    2. 服务器返回结果(后端服务器将在服务器本身的http上创建会话)
    3. angularjs可以正常向后端发送req(后端将验证会话是否有效以接受请求)
    4. 因此,如果用户刷新页面或切换页面,您可以调用后端服务器来验证userToken或session。

答案 1 :(得分:-2)

如果您要存储敏感数据,$ rootScope将容易受到攻击,而是使用localstorage来存储使用加密算法和密钥加密的用户凭证,如上所述,创建服务以获取和设置值。