Ich versuche, einen Benutzer mit JWT-Token zu autorisieren. Aber wenn ich die Seite aktualisiere, geht der JWT verloren und das Token wird bei nachfolgenden Anfragen an den Server nicht gesendet. Ich verwende Localstorage zum Speichern des Tokens und Spring-Mvc für das Backend. Diese ist der Dienst i erstellt haben:Wie verhindert man, dass das jwt-Token bei der Seitenaktualisierung in einer angularjs-Anwendung verloren geht?
'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/Web-Speicher (local/session) –
localstore nicht auf gelöscht werden. Seitenaktualisierung Wie haben Sie den Token auf die $ http-Anfrage gesetzt? –