我可以使用JWT和angular-jwt进行身份验证,但是现在我如何将用户重定向到包含头部请求中的令牌的主页?我在服务器端使用Spring Boot,我想知道如何提供这个请求。
答案 0 :(得分:1)
这是前端的责任,您应该从角度重定向用户,您可以使用$location
服务。
至于你可以将它存储在$rootScope
或客户端cookie中的令牌,这里是我在使用$rootScope
存储客户端状态之前编写的jwt auth服务的示例。
请注意,这不是生产代码。
app.service('AuthService', function ($rootScope, $http, $location) {
var service = this;
service.authenticate = function (credentials) {
$http({
'url': authUrl,
'method': 'POST',
'headers': {'Content-Type': 'application/json'},
'data': credentials
}).then(function (response) {
if (response.data.token && response.data.token.length > 0) {
$rootScope.authenticated = true;
$rootScope.jwtToken = response.data.token;
$location.path('/home');
} else {
$rootScope.logout();
}
}, function () {
$rootScope.logout();
});
$rootScope.logout = service.logout;
};
service.isAuthenticated = function () {
return $rootScope.authenticated;
};
service.logout = function () {
$rootScope.authenticated = false;
$rootScope.jwtToken = null;
};
});