Angular和JWT,在身份验证后重定向

时间:2017-01-21 18:10:42

标签: angularjs spring-boot jwt

我可以使用JWT和angular-jwt进行身份验证,但是现在我如何将用户重定向到包含头部请求中的令牌的主页?我在服务器端使用Spring Boot,我想知道如何提供这个请求。

1 个答案:

答案 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;
    };
});