如何将 JWT 保存到 localStorage
How to save JWT to localStorage
我正在为 login/register 功能使用 Angular-satellizer 扩展,但我卡在了第 7 位。我无法将 JWT 保存到 localStorage。我检查了 chrome 中的开发人员工具,但没有令牌。
.controller('loginCtrl', function($scope, $state, $auth, jwtHelper, $window) {
$scope.login = function() {
$auth.login($scope.user)
.then(function(response) {
var gelenToken = response.data;
var tokenPayload = jwtHelper.decodeToken(gelenToken.token);
console.log(JSON.stringify(tokenPayload)); // Output:{"sub":"1","iat":1496346513,"exp":1497556113,"data":{"role":"admin"}}
$window.localStorage.setItem('token', JSON.stringify(tokenPayload));
$state.go('baba.manga');
})
};
})
我在后端使用带有 Angular 4 和 Node JS 的 JWT。我不认为你需要使用 $window.
......
data => {
localStorage.setItem('token', data.token);
localStorage.setItem('userId', data.userId);
this.router.navigateByUrl('/');
},
......
这应该可以,如果不行请link到plunker/git,我会看看。
您可以同时使用两者:
localStorage.setItem('token', data.token);
或
$window.localStorage.token = JSON.stringify(data.token);
如果它在页面刷新时被删除,那么您需要检查是否在某处重置了 localStorage 或某些脚本正在执行此操作
.controller('loginCtrl', function($scope, $state, $auth, jwtHelper, $window) {
$scope.login = function() {
$auth.login($scope.user)
.then(function(response) {
var gelenToken = response.data;
var tokenPayload = jwtHelper.decodeToken(gelenToken.token);
console.log(JSON.stringify(tokenPayload)); // Output:{"sub":"1","iat":1496346513,"exp":1497556113,"data":{"role":"admin"}}
$window.localStorage.setItem('token', JSON.stringify(tokenPayload));
$state.go('baba.manga');
})
};
})
我在后端使用带有 Angular 4 和 Node JS 的 JWT。我不认为你需要使用 $window.
......
data => {
localStorage.setItem('token', data.token);
localStorage.setItem('userId', data.userId);
this.router.navigateByUrl('/');
},
......
这应该可以,如果不行请link到plunker/git,我会看看。
您可以同时使用两者:
localStorage.setItem('token', data.token);
或
$window.localStorage.token = JSON.stringify(data.token);
如果它在页面刷新时被删除,那么您需要检查是否在某处重置了 localStorage 或某些脚本正在执行此操作