1. The 3-Part Architecture of a JWT
2. Decoding JWTs in Client-Side JavaScript
function parseJwtPayload(token) {
const base64Url = token.split('.')[1];
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
const jsonPayload = decodeURIComponent(
atob(base64)
.split('')
.map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
.join('')
);
return JSON.parse(jsonPayload);
}
// Example usage:
const claims = parseJwtPayload("eyJhbGciOi...");
console.log("Expires at:", new Date(claims.exp * 1000));Safe client-side JWT payload parser