Я работаю над угловым проектом, я создал промежуточное программное обеспечение для аутентификации, которое:
module.exports = (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
const { email, userId } = jwt.verify(token, 'secret');
req.userEmail = email;
req.userId = userId;
return next();
} catch (err) {
console.log(err);
return res.status(401).json({ msg: 'Invalid token'});
}
};
Теперь, когда я пытаюсь сделать http-вызовы из angular, выдается следующая ошибка:
Мой CORS выглядит следующим образом:
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
next();
});
Ошибка на бэкэнде говорит: «не удается прочитать разделение свойств неопределенного ..»
Мой перехватчик Http:
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const clonedReq = req.clone({
headers: req.headers.append('authorization', 'Bearer ' + localStorage.getItem('token'))
})
return next.handle(clonedReq);
}
}
Я на 101% уверен, что токен есть ... Единственное, что решает мою проблему:
module.exports = (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
const { email, userId } = jwt.verify(token, 'sc');
req.userEmail = email;
req.userId = userId;
return next();
} catch (err) {
console.log(err);
// HERE:: If I change status from 401 to 200
return res.status(401).json({ msg: 'Invalid token'});
}
};
Пожалуйста, помогите ....