Мне трудно заставить вещи работать так, как им положено с JWT
на Node JS
. Позвольте мне сначала сказать, что моя цель (после входа в систему) получить доступ к privateRoute маршруту моего API.
Я всегда нажимаю:
authHeader == null
внутри authenticateToken функция промежуточного программного обеспечения, хотя я пробовал много вещей.
Так что я не могу пройти уровень authenticateToken , позволяющий мне войти. Как решение представить что нужно внутри заголовка и чтобы я смог пройти через него Я думал о создании своего рода маршрута входа, но он все еще не работает.
Вот соответствующий код.
app.get('/privateRoute', authenticateToken, function(req, res) {
// Useful work to do, after logging in.
.......
});
function authenticateToken(req, res, next) {
// Gather the jwt access token from the request header
const authHeader = req.headers['authorization'],
token = authHeader && authHeader.split(' ')[1]
if (token == null) {
console.log('authenticateToken-401')
return res.sendStatus(401) // There isn't any token.
}
// It never reaches this point !!!
jwt.verify(token, 'myBigSecret', (err, user) => {
console.log(err)
if (err) {
console.log('authenticateToken-403')
return res.sendStatus(403)
}
req.user = user
})
}
app.get('/entryRoute', function(req, res) {
res.set('authorization', 'Bearer ' + myJWT_Token);
res.redirect('/privateRoute');
});
Может кто-нибудь сказать мне, что мне нужно изменить в своем коде, чтобы мое (вероятно, не очень хорошее) решение работало? Или скажите мне лучший способ сделать это?
Ниже приведена дополнительная информация из браузера, на случай, если это может быть полезно.
В меню FireFox Сервис, Веб-разработчик, Интернет Приставка; Вкладка сети. Я вижу следующее:
Для заголовков ответа (/ entryRoute):
Authorization : Bearer eyiwhfehihinR…CuwfihvihiL_hfgSt_J8D
Connection :keep-alive
Content-Length : 56
Content-Type : text/html; charset=utf-8
Date : Mon, 13 Apr 2020 09:46:55 GMT
Location : /privateRoute
Server : Xoibuy
Vary : Accept
Via : 1.1 vegur
X-Powered-By : Express
Для заголовков запроса (/ privateRoute):
Accept : text/html,application/xhtml+xm…ml;q=0.9,image/webp,*/ *;q=0.8
Accept-Encoding : gzip, deflate, br
Accept-Language : en-US,en;q=0.5
Connection : keep-alive
Host : myapp.herokuapp.com
Upgrade-Insecure-Requests : 1
User-Agent : Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/75.0