Хочу отправить токен авторизации в моих заголовках, пробовал два разных подхода, но ни один из них не отправляет токен, который я использую для запроса на публикацию:
Подход 1 использует перехватчик :
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('inter')
const authHeader = 'JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbasdImahQHNdwc25ldC5jb20iLCJ1c2VySWQiOjk5MjI2MDYsImlhdCI6MTUyNjQ2Mzc2NywiZXhwIjoxNTI2NjM2NTY3fQ.v9RjU25kt-neRFHl8P3q5k4VokpJdNm1Kgn7BU10Zoc';
// Clone the request to add the new header.
const authReq = req.clone({headers: req.headers.set('Authorization', authHeader)});
// Pass on the cloned request instead of the original request.
console.log('intercepted') //got this message in console
return next.handle(authReq);
}
}
функция post
post(url: String, data: any) {
return this.http.post(url, data)
.map(res => res)
.catch(this.handleError);
}
добавлено в app.module.ts при печати консоли на сервисе. Я вижу сообщениена моей консоли
да перехватили, но получили это изображение в результате:
Второй подход гораздо проще и использовал его в angular2но получая ошибку с angular5
post(url: String, data: any) {
const headers = new Headers({'Content-Type': 'application/json'});
headers.append('Authorization', 'JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyasdasdasImhhbXphQHNwc25ldC5jb20iLCJ1c2VySWQiOjk5MjI2MDYsImlhdCI6MTUyNjQ2Mzc2NywiZXhwIjoxNTI2NjM2NTY3fQ.v9RjU25kt-neRFHl8P3q5k4VokpJdNm1Kgn7BU10Zoc');
const options = new RequestOptions({headers});
return this.http.post(url, data)
.map(res => res)
.catch(this.handleError);
}
получая эту ошибку
то же самое работает с опциями запроса angular2, но не с angular5
Токен правильно проверен, и я отправляю запрос через POSTMAN