NodeJS

Требования

Чтобы иметь возможность декодировать токен JWT с помощью языка JavaScript, необходимо установить пакет jsonwebtoken.

Лучший способ установить его - через менеджер пакетов npm:

$ npm install jsonwebtoken

Использование jsonwebtoken

Во-первых, необходимо импортировать пакет jsonwebtoken:

const jwt = require('jsonwebtoken');

Во-вторых, необходимо прочитать и сохранить публичный ключ (используемый для расшифровки токена). Нужно заранее получить его заранее и хранить рядом с проектом (в данном случае ./keys/id_rsa.pub).

const PUBLIC_KEY = fs.readFileSync('/path/to/public/key_public.pem'); // get public key

Затем необходимо реализовать функцию для проверки токена с использованием публичного ключа:

function verifyJwt(token) {
    try {
        return jwt.verify(token, PUBLIC_KEY, { algorithms: ['RS256'] });
    }
    catch(e) {
        return;
    }
}
result = verifyJwt(token);

Результат

Если токен правильный и срок его действия не истек, после использования jwt_verify будет получен декодированную структуру JWT:

{
  "challenge_id": "3aa67786-d8cb-4ed5-ae83-ae7ace27e372",
  "result": 94,
  "iat": 1578001068,
  "exp": 1578001128
}

Результат проверки бот/не бот можно получить из поля result.

Last updated