Я использую Angular 7 и создал перехватчик для включения токена аутентификации в каждый запрос.
Вот мой код перехватчика:
import { Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
constructor() { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const token = localStorage.getItem('authToken');
if (token) {
request = request.clone({
setHeaders: {
authorization: token
}
});
}
return next.handle(request);
}
}
API узла для проверки токена авторизации:
const jwt = require('jsonwebtoken');
function verifyToken(req, res, next) {
var token = req.headers['authorization']; // Coming Undefined
if (!token)
return res.status(403).send({ auth: false, message: 'No token provided.' });
jwt.verify(token, 'top_secret', function (err, decoded) {
if (err)
return res.status(500).send({ auth: false, message: 'Failed to authenticate token.' });
// if everything good, save to request for use in other routes
req.userId = decoded.user.email;
next();
});
}
module.exports = verifyToken;
При обращении к API с помощью Postman все работает нормально, но при отправке запроса с использованием углового кода заголовки не принимаются в API узла.
Что может быть возможной причиной такого странного поведения?
Authorization
, ожидаяauthorization
. Однако вы также не получаетеAuthorization
, так что проблема не в этом. Проверяли ли вы вкладку сети при отправке запроса, чтобы подтвердить, что заголовок вводится в запрос? - person Tim VN   schedule 21.06.2019request = request.clone({ setHeaders: { 'Authorization': token }, withCredentials: true });
- person Tim VN   schedule 21.06.2019JwtInterceptor
правильно называется? - person youri   schedule 21.06.2019