Сбой декодирования JWT с недопустимым значением exp - PullRequest
1 голос
/ 25 марта 2019

Я использую модуль jsonwebtoken 8.4.0 в приложении nodejs 10.2.0. Токен JWT генерируется на https://jwt.io для целей тестирования:

enter image description here

Здесь, в payload, exp - это дата окончания срока действия, и строка правильно отформатирована в JSON. Затем токен JWT слева передается в приложение для проверки. Вот строка кода (как 29:33 ниже), которая терпит неудачу:

const decoded = jwt.verify(jwt_token, process.env.jwtPrivateKey);

Ошибка:

{ JsonWebTokenError: invalid exp value
    at C:\d\code\js\emps_bbone\node_modules\jsonwebtoken\verify.js:149:21
    at getSecret (C:\d\code\js\emps_bbone\node_modules\jsonwebtoken\verify.js:90:14)
    at Object.module.exports [as verify] (C:\d\code\js\emps_bbone\node_modules\jsonwebtoken\verify.js:94:10)
    at module.exports (C:\d\code\js\emps_bbone\middleware\auth_userinfo.js:29:33)

Ошибка жалуется на недопустимое значение exp. Также очевидно, что есть допустимый токен jwt, сгенерированный с полезными данными. jsonwebtoken декодировать нужно только вернуть исходную полезную нагрузку exp, которая является строкой, почему это не удалось?

1 Ответ

1 голос
/ 25 марта 2019

Вам необходимо предоставить exp как NumericDate .Очевидно, вы не можете использовать предоставленный вами формат даты.

См. Документацию: https://www.npmjs.com/package/jsonwebtoken#token-expiration-exp-claim

См. Спецификацию: https://tools.ietf.org/html/rfc7519#section-4.1.4

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