Угловая аутентификация HttpClient на API с использованием токена - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь получить свои данные из JSON-API Jenkins, используя HTTPClient.Поскольку данные, к которым я хочу получить доступ, ограничены, мне нужно пройти аутентификацию в Jenkins.Поэтому я сгенерировал API-токен.Теперь я хочу аутентифицировать себя с помощью Angular HTTPClient, но я не знаю как.

Кто-нибудь может мне помочь с моей проблемой?

Спасибо

1 Ответ

0 голосов
/ 28 января 2019

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

@Injectable({
  providedIn: 'root'
})
export class OutgoingInterceptor implements HttpInterceptor {



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

     interceptedRequest = req.clone({
         setHeaders: {

             // These headers is for Passport authentication.
             // You might to change these headers as you need
             // Also you need to store your token in localStorage etc.

             Accept: 'application/json',
             Authorization: tokenData
         }
     });

     return next.handle(interceptedRequest);
  }
}

И вам нужно добавить этот вновь созданный перехватчик в массив провайдеров вашего модуля:

providers: [

    ... 

    {
      provide: HTTP_INTERCEPTORS,
      useClass: AuthInterceptor,
      multi: true
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...