繁体   English   中英

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

[英]Methods of saving user info in AngularJS

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

许多老年人建议使用$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',
})

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

userToken示例

  1. 将用户登录请求发送到后端服务器
  2. 服务器返回响应userToken
  3. angularjs将userToken存储在cookie中
  4. 每当angularjs请求到后端时,都必须附加此userToken(通常放在标头中)

会话示例

  1. 将用户登录请求发送到后端服务器
  2. 服务器返回结果(因为后端服务器将在服务器本身的http上创建会话)
  3. angularjs可以正常发送请求到后端(后端将验证会话是否有效以接受请求)

因此,如果用户刷新页面或切换页面,则可以调用后端服务器来验证userToken或会话。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM