На моем сервере (Nodejs + Express) у меня есть защищенные маршруты с токеном JWT.В среде разработки заголовок HTTP-авторизации в запросе выглядит следующим образом:
Authorization: JWT token_string
После того, как я создаю угловое приложение, встроенное приложение по какой-то причине добавляет в заголовок «Носитель»:
Authorization: Bearer JWT token_string
Запрос:
addTemplate(template: ITemplate): Observable<ISuccessMsgResponse> {
return this.http.post<ISuccessMsgResponse>(`${this.ULR}template`, template, {
headers: new HttpHeaders({
'Authorization': this.token.getToken()
})
});
}
Узел:
.post(passport.authenticate('jwt', {session: false}), (req, res) => {
// Code to execute
}
, паспорт:
module.exports = function(passport) {
let opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('jwt');
opts.secretOrKey = config.secret;
passport.use(new JwtStrategy(opts, (jwtPayload, done) => {
User.getUserById(jwtPayload._id, (err, user) => {
if(err) {
return done(err, false)
}
if(user) {
return done(null, user)
} else {
return done(null, false)
}
})
}))
}
Если я пытаюсь выполнить запрос с тем же форматом заголовка авторизации, что и в разработке, все работает нормально,Таким образом, проблема заключается во встроенной версии Angular, которая добавляет «Bearer» в заголовок авторизации.Кто-нибудь знает, почему это происходит и как я могу это исправить?