选定请求上的angular auth拦截器

时间:2016-11-28 11:35:52

标签: angularjs

我编写了一个auth拦截器,它将auth令牌添加到请求中,并在用户未登录时处理身份验证错误。

var storeApp = angular.module('storeApp');

storeApp.factory('authInterceptor', function ($q, $window) {
    return {
        request: function (config) {
            config.headers = config.headers || {};
            if ($window.sessionStorage.token) {
                config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token;
            }
            return config;
        },
        response: function (response) {
            return response || $q.when(response);
        },
        responseError: function (response) {
            if (response.status === 401 || response.data.error === 'token_not_provided') {
                console.log('auth error');
            }
            return $q.reject(response);
        }
    };
});

storeApp.config(function ($httpProvider) {
    $httpProvider.defaults.withCredentials = true;
    $httpProvider.interceptors.push('authInterceptor');
});

问题是auth拦截器被添加到每个请求,无论请求是否需要身份验证。创建一个仅在路由需要身份验证时才会截获的auth拦截器的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您需要在authInterceptor工厂方法中过滤掉您想要的请求

child_process.spawn