Как получить код состояния в сообщении об ошибке на основе токена jwt, используя nodejs? - PullRequest
0 голосов
/ 02 мая 2019

Я реализовал аутентификацию токена JWT, используя node.js и MongoDB.Работает нормально.Создание сообщений об ошибках также работает нормально (токен недействителен, JWT истек, JWT должен быть предоставлен).Но как автоматически получить соответствующий код состояния HTTP в сообщении об ошибке?

// jwt.js

function Verify_Token(accessToken) {
    jwt.verify(accessToken, config.get("jwtprivatekey"), function (err) {
        value = err

    });
    return value

}

1 Ответ

1 голос
/ 02 мая 2019

jwt.verify не возвращает числовой код состояния в случае ошибки. Согласно документации модуля jsonwebtoken npm, мы можем ясно видеть, что он просто возвращает поля ниже, когда выдает ошибку.

jwt.verify(token, 'shhhhh', function(err, decoded) {
  if (err) {
  /*
     err = {
        name: 'TokenExpiredError',
        message: 'jwt expired',
        expiredAt: 1408621000
     }
  */
  }
});

Если вам нужно вернуть какой-либо код состояния с вашего веб-сервера nodejs, вам необходимо встроить код состояния в ответ http вместе с сообщением об ошибке от jwt. Нечто вроде ниже.

jwt.verify(token, 'shhhhh', function(err, decoded) {
  if (err) {

     err = {
        name: 'TokenExpiredError',
        message: 'jwt expired',
        expiredAt: 1408621000
     }
     return res.status(401).send(err)
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...