2017-01-21 7 views
1

JWTとangular-jwtを使用して認証を行うことができますが、ここでどのようにユーザーをホームページにリダイレクトすることができますか?私はサーバー側でSpring Bootを使用しています。この要求をどのように処理するかを知りたいと思います。認証後の角度とJWT、リダイレクト

答えて

1

これはフロントエンドの責任で、角度からユーザーをリダイレクトする必要があります。$locationサービスを使用できます。 $rootScopeまたはクライアント側のクッキーに格納できるトークンについては、$rootScopeを使用してクライアントの状態を保存する前に書き込んだjwt認証サービスの例を示します。 これは実動コードではないことに注意してください。

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