0

angular 1から来て、JWTトークンを使用してユーザーを認証しました。angular 1では、これがありました:

.config(function Config($httpProvider, jwtOptionsProvider) {
        // Interceptor for token push on every $http request
        jwtOptionsProvider.config({
            tokenGetter: ['storageService', function (storageService) {
                return storageService.getToken();
            }],
            whiteListedDomains: ['127.0.0.1', 'localhost'],
            unauthenticatedRedirector: ['$state', 'authManager', 'storageService', 'jwtHelper', function ($state, authManager, storageService, jwtHelper) {
                if (storageService.getToken() != null) {
                    if (jwtHelper.isTokenExpired(storageService.getToken())) {
                        alert('Su sesión ha caducado.');
                    }
                }

                storageService.removeToken();
                storageService.clearAll();
                authManager.unauthenticate();
                $state.go('autorepuestos_fe');
            }],
            unauthenticatedRedirectPath: '/login'
        });

        $httpProvider.interceptors.push('jwtInterceptor');
    })

これがインターセプターです。Angular 2 の JWT の公式ページで、ユーザーのルートを簡単に傍受して AuthGuard でリダイレクトできることを学びました。これは大丈夫です、私は使用して完璧に動作します。しかし、私の質問は...このバージョンのAngular 2 JWTにはunauthenticatedRedirectorがありますか? これにより、ユーザーがバックエンドの任意のエンドポイントにリクエストを送信すると、自動的にメッセージが表示され、ログイン ページにリダイレクトされます。

これをどのように実装できるか考えていますか? 任意のエンドポイントへのすべての呼び出しをインターセプトし、最初にトークンが有効かどうかを検証し、これが true の場合はリクエストを行う関数を配置することを考えていましたが、複雑に聞こえます。

4

2 に答える 2