节点中间件next()出错(JWT验证)

时间:2019-04-05 05:29:05

标签: node.js express jwt

我在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/

0 个答案:

没有答案