3

Мне нужно установить глобальный заголовок http для всех моих запросов из-за используемого метода аутентификации. У нас есть Identity Server для аутентификации пользователя с использованием подхода SSO. Пока все хорошо, мы использовали перехватчики для установки заголовков по всему миру. Но иногда нам нужно обратиться к стороннему API, который не использует какой-либо метод проверки подлинности. Как я могу переопределить заголовок аутентификации, настроенный перехватчиком? Является ли это рекомендуемым методом для решения этой проблемы?Правильный способ установки и переопределения заголовка запроса в Angular

ответ

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

Спасибо, сейчас это кажется настолько очевидным! Наверное, лучший способ. Еще одна вещь, которую я подумал, но я не уверен, работает ли она: если я создам сервис для моей третьей стороны (хорошо ли это сделать, кстати?), Могу ли я переопределить все более сложное или на самом деле это будет отменено в перехватчик? –

+1

Рад, что я мог помочь! Я не уверен, что вы подразумеваете под словом «override the harder». Насколько я знаю, перехватчик поймал бы любые HTTP-запросы (да, не только вызовы API, даже запросы на файлы css/html/js). Я не понимаю, почему создание сервиса для третьей стороны - это плохая идея, я бы сказал, иди за ней. – yvesmancera

+1

Извините, я имею в виду переопределить заголовок. –

Смежные вопросы