2016-08-30 5 views
4

Я использую токен jwt для аутентификации и хотел бы прочитать информацию о полезной нагрузке на стороне клиента. Сейчас я делаю что-то вроде этого:Как декодировать полезную нагрузку токена JWT на стороне клиента?

var payload = JSON.parse(window.atob(token.split('.')[1])); 

Есть ли лучший способ работы с JWT лексем в браузере?

+1

https://github.com/auth0/jwt-decode – robertklep

+0

Благодаря @robertklep я смотрел на эти файлы ранее, но упускается из виду папке .build. Я опубликовал решение, которое я использовал ниже, после того, как вы указали ссылку. – Woodsy

+0

Можете ли вы объяснить, почему вы хотите это сделать? – CodyBugstein

ответ

7

От https://github.com/auth0/jwt-decode

загрузить .build/JWT-decode.min.js файл и включить в проект.

<script src="js/jwt-decode.min.js"></script> 

var token = 'eyJ0eXAiO.../// jwt token'; 
var decoded = jwt_decode(token); 
console.log(decoded); 
1

Это простое решение возвращает необработанный маркер, заголовок и полезную нагрузку:

function jwtDecode(t) { 
    let token = {}; 
    token.raw = t; 
    token.header = JSON.parse(window.atob(t.split('.')[0])); 
    token.payload = JSON.parse(window.atob(t.split('.')[1])); 
    return (token) 
} 
Смежные вопросы