Аутентификация Interceptor не работает в угловых 6 - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь внедрить Azure B2C в мое приложение Angular 6:

authentication-interceptor.ts:

@Injectable()
export class AuthenticationInterceptor implements HttpInterceptor {
    constructor(private adalService: AdalService) { }

    intercept(req: HttpRequest<any>, next:HttpHandler): Observable<HttpEvent<any>>{
        const authHeader = this.adalService.userInfo.token;
        var header = 'Bearer ' + authHeader;
        const authReq = req.clone({headers: req.headers.set('Authorization', header)});
        return next.handle(authReq);
    }
}

api-service.ts:

getMenuItemsDistinct():Observable<string[]>{
   var url = `${environment.apiUrl}/api/menuitemsdistinct`;
   return  this.httpClient.get<string[]>(url);    
}

module.ts:

 providers: [
    AdalService, 
      AuthenticationGuard,
      { provide: HTTP_INTERCEPTORS, useClass: AuthenticationInterceptor, multi: true }
]

Fiddler: enter image description here

Я ожидаю, что запрос в fiddler будет показывать токен на предъявителя (я не уверен) ?.Странно то, что когда я отлаживаю приложение, в методе перехвата AuthenticationInterceptor достигается точка останова, но, как вы можете видеть в fiddler, я не вижу токен, а потом я получаю 401.Любые предложения, как решить эту проблему, или, может быть, я пропускаю некоторые шаги здесь?У меня есть хороший токен в коде при отладке.

Как утверждает Хьюго, инструменты Google Crome показывают носителя.Не уверен, почему скрипач отправил:

enter image description here

1 Ответ

0 голосов
/ 15 декабря 2018

Я полагаю, что у вас могут быть проблемы с конфигурациями fiddler или fiddler.Пожалуйста, попробуйте и проверьте те же заголовки запроса на инструментах Chrome Dev.Нет ничего плохого в том, как строится запрос.Это согласно документации.

Возможно, у вас также возникла проблема с заголовками, возвращаемыми с сервера при первоначальном запросе OPTIONS, что означало бы наличие проблемы для выполнения фактического запроса.Это может быть несоответствие в вашей конфигурации CORS.

На добавленном снимке экрана ошибка audience is invalid обычно означает, что вы, возможно, пытаетесь получить доступ к ресурсу, который вам не нужен.Вероятно, некоторые настройки Azure или правила доступа к данным.

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