23 lines
636 B
JavaScript
23 lines
636 B
JavaScript
function jwtDecode(jwt) {
|
|
// Source: https://inventivehq.com/blog/how-to-decode-a-jwt
|
|
|
|
const parts = jwt.split('.');
|
|
const header = parts[0];
|
|
const payload = parts[1];
|
|
const signature = parts[2];
|
|
// Base64URL to Base64
|
|
function base64UrlToBase64(str) {
|
|
return str.replace(/-/g, '+').replace(/_/g, '/');
|
|
}
|
|
|
|
// Decode
|
|
const decodedHeader = JSON.parse(atob(base64UrlToBase64(header)));
|
|
const decodedPayload = JSON.parse(atob(base64UrlToBase64(payload)));
|
|
|
|
return {
|
|
raw: jwt,
|
|
header: decodedHeader,
|
|
payload: decodedPayload,
|
|
signature: signature
|
|
}
|
|
} |