【发布时间】:2016-11-13 05:56:02
【问题描述】:
我正在尝试使用 jwt 令牌授权用户。但是,如果我刷新页面,jwt 会丢失,并且不会在后续请求中将令牌发送到服务器。我使用 localstorage 存储令牌和 spring-mvc 用于后端。 这是我创建的服务:
'use strict';
angular.module('authentication')
.factory('AuthenticationService', ['$http', '$localStorage',
'$rootScope','$route', '$q', function($http, $localStorage, $rootScope,
$route, $q){
var service = {loggedInUser: function(){
return $q.when($rootScope.user)
}};
service.Login = Login;
service.Logout = Logout;
return service;
function Login(username, password, callback){
$http.post('http://172.16.0.26:7001/Taisys_Server_Current/auth',
{username:username, password:password})
.success(function (response){
if(response.token){
$localStorage.currentUser = {username:username,
token:response.token};
$http.defaults.headers.common.Authorization = 'Bearer' + response.token;
$rootScope.user= $localStorage.currentUser;
$rootScope.token = response.token;
callback(true);
}
else{
callback(false);
}
});
}
function Logout(){
delete $localStorage.currentUser;
$http.defaults.headers.common.Authorization = '';
$route.reload();
}
}]);
【问题讨论】:
-
cookies/网络存储(localStorage/sessionStorage)
-
本地存储不会在页面刷新时被清除。你是如何在 $http 请求上设置令牌的?
标签: javascript angularjs json angularjs-directive jwt