2

$httpいずれかの呼び出しで 401 エラーが発生した場合に、サーバーからエラーを検出してトークンを削除する最も簡単な方法は何ですか? たとえば、ユーザーがアプリを使用していない間にセッションの有効期限が切れた場合、ユーザーが Web アプリに戻ったときにトークンは無効になります。API 呼び出し中に 401 エラーを返した場合は、これに注意して、ユーザーに再度ログインさせる必要があります。

現在、Chrome 開発者ツールで 401 エラーを確認できますが、Satellizer はトークンを削除しません (一度は削除したと思っていました)。

httpInterceptor を作成しようとしましたが、Circular Dependency エラーを受け取りました:

apiLogoutInterceptor.$inject = ['$q', '$auth'];
function apiLogoutInterceptor ($q, $auth) {
    var service = this;
    service.responseError = function (response) {
        if (response.status == 401) {
            $auth.removeToken();
            window.location = '/login';
        }
        return $q.reject(response);
    };
}

configureApiLogout.$inject = ['$httpProvider'];
function configureApiLogout ($httpProvider) {
    $httpProvider.interceptors.push('apiLogoutInterceptor');
}
4

1 に答える 1