Промежуточное программное обеспечение узла next () переходит к ошибке (проверка JWT) - PullRequest
0 голосов
/ 05 апреля 2019

Я установил jsonwebtoken в node.js и протестировал его с postman. Сначала при входе в систему я генерирую токен, затем копирую его и использую для отправки запроса на защищенный маршрут. И jwt.verify работает нормально, правильный userId получен, но когда я вызываю next() (см. Ниже), он переходит к обработчику ошибок 404 вместо 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/ в index

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...