Декодировать строку base64 в объект JSON - PullRequest
1 голос
/ 02 мая 2019

Я работаю с Node, и у меня есть строка в кодировке base64. Строка является закодированным объектом JSON, как я могу декодировать его и правильно проанализировать в JSON?

Я пробовал следующее, но значение в bufferedString не является строкой объекта JSON.

let splittedString = authenticationToken.split(".");
let bufferedString = Buffer.from(splittedString[2], 'base64').toString('ascii');
let decodedJson = JSON.parse(bufferedString);

Спасибо.

1 Ответ

2 голосов
/ 02 мая 2019

JWT Структура:

[signature_or_encryption_algorithm].[payload_as_base64].[verify_signature].

Полезная нагрузка обычно является вторым элементом, поэтому используйте splittedString[1] вместо 2.

Но есть лучшие подходы для работы с токенами jwt, вы можете получить полезную нагрузку jwt с помощью модуля jsonwebtoken.

const jwt = require('jsonwebtoken');

// get the decoded payload ignoring signature, no secretOrPrivateKey needed
var decoded = jwt.decode(token);

// get the decoded payload and header
var decoded = jwt.decode(token, {complete: true});
console.log(decoded.header);
console.log(decoded.payload);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...