@leteu/jwt-decoder
Version:
JSON Web Tokens decoder
29 lines (28 loc) • 879 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decodeToken = decodeToken;
function decodeToken(token) {
let base64Url;
if (token.match(/^[A-Za-z0-9-_]*\.[A-Za-z0-9-_]*\.[A-Za-z0-9-_]*$/)) {
base64Url = token.split('.')[1];
}
else if (token.match(/^[A-Za-z0-9-_]*$/)) {
base64Url = token;
}
else {
console.log('token is not valid');
return {};
}
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
try {
const jsonString = decodeURIComponent(Array.from(atob(base64))
.map((char) => `%${char.charCodeAt(0).toString(16).padStart(2, '0')}`)
.join(''));
return JSON.parse(jsonString);
}
catch (error) {
console.error('Failed to decode token:', error);
return {};
}
}
exports.default = decodeToken;