AngularJS 中保存用户信息的方法
Methods of saving user info in AngularJS
我想了解保存用户信息的方法
很多前辈推荐使用$cookieStore
,或者Authentication
等等
但是使用 $rootScope
怎么样?
我的想法是当用户登录后,将 his/her id 和密码保存到 $rootScope
。
(命名方式类似于 $rootScope.user_id = 'stupid';
)
这种方式危险吗?
我不知道这个问题是否重复,但我找不到一个谈论使用 $rootScope
。
.
.
更新
我的配置如下。
'root controller' 可以看到每个范围,所以即使我刷新页面,
$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 将容易受到攻击,而是使用 localstorage 存储用户凭据,并使用某些加密算法和密钥进行加密,并如上所述,创建服务以获取和设置值。
在 rootScope 或 cookie 中存储原始用户凭据的方法非常糟糕。但是,您可以使用服务器端提供的 userToken 或 session 将其存档。
userToken 示例
- 发送用户登录请求到后端服务器
- 服务器return响应userToken
- angularjs 将 userToken 存储在 cookie 中
- 每次 angularjs 向后端请求时,必须附加此 userToken(通常放在 header 中)
session
的示例
- 发送用户登录请求到后端服务器
- 服务器 return 结果(因为后端服务器将在服务器本身的 http 上创建 session)
- angularjs可以正常发送req到后台(后台会验证session是否有效接受req)
因此,如果用户刷新页面或切换页面,您可以调用后端服务器来验证 userToken 或 session。
我想了解保存用户信息的方法
很多前辈推荐使用$cookieStore
,或者Authentication
等等
但是使用 $rootScope
怎么样?
我的想法是当用户登录后,将 his/her id 和密码保存到 $rootScope
。
(命名方式类似于 $rootScope.user_id = 'stupid';
)
这种方式危险吗?
我不知道这个问题是否重复,但我找不到一个谈论使用 $rootScope
。
.
.
更新
我的配置如下。
'root controller' 可以看到每个范围,所以即使我刷新页面,
$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 将容易受到攻击,而是使用 localstorage 存储用户凭据,并使用某些加密算法和密钥进行加密,并如上所述,创建服务以获取和设置值。
在 rootScope 或 cookie 中存储原始用户凭据的方法非常糟糕。但是,您可以使用服务器端提供的 userToken 或 session 将其存档。
userToken 示例
- 发送用户登录请求到后端服务器
- 服务器return响应userToken
- angularjs 将 userToken 存储在 cookie 中
- 每次 angularjs 向后端请求时,必须附加此 userToken(通常放在 header 中)
session
的示例- 发送用户登录请求到后端服务器
- 服务器 return 结果(因为后端服务器将在服务器本身的 http 上创建 session)
- angularjs可以正常发送req到后台(后台会验证session是否有效接受req)
因此,如果用户刷新页面或切换页面,您可以调用后端服务器来验证 userToken 或 session。