Как я могу декодировать полезную нагрузку JWT, используя JavaScript? Без библиотеки. Таким образом, токен просто возвращает полезный объект, который может использоваться моим клиентским приложением.
Пример токена: xxxxxxxxx.XXXXXXXX.xxxxxxxx
И результат - полезная нагрузка:
{exp: 10012016 name: john doe, scope:['admin']}
javascript
jwt
Chrisk8er
источник
источник
Ответы:
Рабочая функция парсера текста JWT в Юникоде:
источник
JSON.parse(window.atob(base64))
чтобы оно заработало. Простоreturn JSON.parse(atob(base64));
и затемpostman.setEnvironmentVariable("userId", parseJwt(jsonData.access_token));
«access_token» в моем случае ключ значения маркеров в ответ (может отличаться в вашем случае).var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
jwt-decode
Модуль лучше использовать, потому что он небольшой, но лучше обрабатывает.Простая функция с try - catch
Спасибо!
источник
atob
знает проблемы сВы можете использовать jwt-decode , чтобы потом написать:
источник
Вы можете использовать чистую
atob()
функцию JavaScript для декодирования токена в строку:или непосредственно разобрать его в объект json:
читать о
atob()
иbtoa()
встроенной в JavaScript функции Base64 кодирование и декодирование - веб - АФИ | MDN .источник
@Peheje будет работать, но у вас будут проблемы с юникодом. Чтобы исправить это, я использую код на https://stackoverflow.com/a/30106551/5277071 ;
источник
Поскольку объект "window" отсутствует в среде nodejs, мы можем использовать следующие строки кода:
У меня это отлично работает. Надеюсь, поможет.
источник
При использовании узла вам, возможно, придется использовать буферный пакет:
источник
Я использую эту функцию, чтобы получить полезную нагрузку, заголовок, exp (время истечения), iat (выдано в) на основе этого ответа
источник
все функции jwt.io не поддерживают все языки. В NodeJs вы можете использовать
источник
Я нашел этот код в jwt.io, и он работает хорошо.
В некоторых случаях (на определенных платформах разработки)
лучший ответ (на данный момент) сталкивается с проблемой неверной длины base64.
Итак, мне нужен был более стабильный путь.
Я надеюсь, что это поможет вам.
источник
Гай и Пехье уже ответили на вопрос. Для такого начинающего, как я, было полезно также определить строку импорта в примере.
Кроме того, мне потребовалось несколько минут, чтобы понять, что токен - это полный набор учетных данных, которые отправляются обратно (весь токен JWT, а не только его часть idToken). Просто, как только вы это знаете ..
источник
Простое решение NodeJS для декодирования веб-токена JSON (JWT)
источник
Ответ основан на GitHub - auth0 / jwt-decode . Изменен ввод / вывод для включения разделения строки и возврата объекта {заголовок, полезная нагрузка, подпись}, так что вы можете просто передать весь токен.
источник
Вот более многофункциональное решение, которое я только что сделал после изучения этого вопроса:
Вот несколько примеров использования:
Я не смог сделать это работоспособным в инструменте фрагмента кода StackOverflow, но вот примерно то, что вы увидели бы, запустив этот код:
Я заставил
parseJwt
функцию всегда возвращать объект (в некоторой степени по причинам статической типизации).Это позволяет вам использовать синтаксис, такой как:
Затем вы можете протестировать во время выполнения определенные типы ошибок и избежать любых конфликтов имен.
Если кто-то может подумать о каких-либо небольших усилиях, внесении значительных изменений в этот код, смело редактируйте мой ответ в интересах
next(person)
.источник
На основании ответов здесь и здесь :
источник
Запустив Javascript node.js express, я должен был сначала установить пакет следующим образом:
тогда в моем коде app.js получите пакет:
Затем запустите код:
Тогда магия:
источник