我在jsonwebtoken
中设置了node.js
,并用postman
对其进行了测试。首先在登录时生成令牌,然后将其复制并用于发布请求到受保护的路由。并且jwt.verify
运行得很好,可以检索正确的userId
,但是当我调用next()
(见下文)时,它将转到404
错误处理程序,而不是{{1} }受保护的路由所在的位置:
index
为什么会这样?我在这里做错了什么?基本上,我的目标是在var index = require('./routes/index')
function verifyToken (req, res, next) {
// Get auth header value
const bearerHeader = req.headers['authorization']
// check if bearer is undefined
const message = 'Unauthorized user, access denied!'
if (typeof bearerHeader !== 'undefined') {
const bearerToken = bearerHeader.split(' ')[1]
jwt.verify(bearerToken, 'privateKey', (err, userData) => {
if (err) {
// Forbidden
console.log(err)
res.status(403).send({ err })
} else {
console.log(userData.userId)
req.userId = userData.userId
------> next()
}
})
} else {
// Forbidden
res.status(403).send({ message })
// res.sendStatus(403)
}
}
// app.use('/auth', index);
app.use('/auth', verifyToken, index)
对象上设置userId
,然后将其返回到req
的根路由auth/