как удалить авторизацию Bearer в угловых 4-х постовых вызовах API - PullRequest
0 голосов
/ 05 ноября 2019

Требуется удалить канал авторизации при вызове POST

Ниже приведен код, который не удаляет канал авторизации, поступающий от перехватчиков http.

Код состояния: 403 присутствует заголовок несанкционированного запроса авторизации,это не поддерживается

public EMail(Request) {
 const headers = new HttpHeaders()
                .delete('Authorization', 'Bearer ' + sessionStorage.removeItem('accessToken'));
            return this.http.post<Email>(sendMailUrl, request, { headers }).map((data: any) => {
});

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Если заголовок авторизации добавлен в перехватчик HTTP, вы не можете «удалить» токен, как это. Перехватчик HTTP необходимо настроить.

Перейдите к файлу перехватчика, который должен начать примерно так:

public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

Затем вы можете не добавить заголовок авторизациина основе вызываемого URL:

if (req.url !== 'your_email_post_url') {
   // add authorization header code
}
0 голосов
/ 05 ноября 2019

Ваш код выполняется перед http-перехватчиком. Вы должны улучшить свой перехватчик, чтобы добавить заголовок только для нужного хоста сервера.

Если вы используете библиотеку lib, вы обычно можете определить URL.

Например: https://github.com/manfredsteyer/angular-oauth2-oidc

OAuthModule.forRoot({
    resourceServer: {
        allowedUrls: ['http://www.angular.at/api'],
        sendAccessToken: true
    }
})
...