Условно установить заголовок внутри Angular Http Interceptor - PullRequest
1 голос
/ 24 января 2020

Я пишу перехватчик, который хочу условно установить заголовок авторизации. Я думал об этом из клиента:

const httpOptions = {sendAuthToken: false}
this.http.get(url, httpOptions)

Однако я не могу найти способ получить параметры внутри перехватчика. Единственное, что я могу получить - это заголовки. Возможно, я могу установить заголовок, такой как «UseAuthToken» в запросе, а затем внутри перехватчика удалить «UseAuthToken» и установить заголовок авторизации на основе значения «UseAuthToken». Это кажется вздорным.

Есть ли другие варианты?

1 Ответ

0 голосов
/ 24 января 2020

Возможно, я могу установить заголовок, такой как «UseAuthToken» в запросе, а затем внутри перехватчика удалить «UseAuthToken» и установить заголовок авторизации на основе значения «UseAuthToken». Это кажется хакерским.

Вы очень близко.

Если вы используете JWT в качестве примера, тогда установите Bearer, но используйте токен name , для которого служба является target .

Authorization: Bearer <serviceA>

Так что перехватчик будет искать Authorization заголовки, а затем заменить <serviceA> на JWT токен для этого конкретный c сервис .

Это имеет то преимущество, что перехватчик позволяет другим заголовкам однонаправленный проходить через немодифицированные, но также поддерживает несколько токенов JWT , Вы можете искать и заменять <serviceA>, <serviceB> и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...