在Angular中设置和覆盖请求标头的正确方法

时间:2015-09-01 20:24:06

标签: angularjs angular-http angular-http-interceptors angular-http-auth

由于我们正在使用的身份验证方法,我需要为我的所有请求设置全局http标头。我们有一个Identity Server,可以使用SSO方法对用户进行身份验证。到目前为止,我们使用拦截器来设置全局标头。但有时我们需要向没有使用任何身份验证方法的第三方API发出请求。 如何覆盖拦截器配置的身份验证标头? 这是针对此问题的推荐方法吗?

1 个答案:

答案 0 :(得分:2)

在您的拦截器中,您可以编写一些逻辑来决定是否需要添加标头:

.factory('AuthHeaderInterceptor', function () {

  function request(config) {

    //if 3rd party url, don't add auth header
    if(config.url.indexOf('third_party_url') !== -1) {
      return config;
    }

    config.headers.Authorization = 'auth header';
    return config;
  }

  return {
    request: request
  };
});