Я довольно новичок в JavaScript, поэтому я все еще пытаюсь разобраться. В приложении мы используем jwt
, чтобы проверить, действителен ли токен. Для этого следующая функция создается с использованием учебного пособия и моих собственных экспериментов:
function isAuthorized(req, res, next) {
const bearerHeader = req.headers['authorization']
if (typeof bearerHeader !== 'undefined') {
let token = bearerHeader.split(' ')[1]
let privateKey = 'secretkey'
jwt.verify(token, privateKey, { algorithm: "HS256" }, (err) => {
if (err) {
res.sendStatus(403)
}
else {
next()
}
})
}
else {
res.sendStatus(403)
}
}
Когда я затем выполняю вызов post
с некоторой полезной нагрузкой json
, она будет правильно проходить в следующая функция:
app.post('/api/posts', isAuthorized, (req, res) => {
res.json({
message: 'Post created',
request: req.body.username
})
})
Единственное, что, похоже, не работает, это как проверить полезную нагрузку json
в body
, которая была отправлена с вызовом post
. Конечно, должна быть возможность иметь функцию промежуточного программного обеспечения isAuthorized
для передачи этих данных.