Free Online JSON Web Token Debugger & Explainer
JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.
In its compact form, JSON Web Tokens consist of three parts separated by dots (.), which are:
The output is typically three Base64-URL strings separated by dots. The structure looks like this:
base64UrlEncode(header) + "." + base64UrlEncode(payload) + "." + signature
To create the signature:
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret )
Claims are the "meat" of the JWT. Common registered claims include:
iss (Issuer): Identifies the principal that issued the JWT.sub (Subject): Identifies the principal that is the subject of the JWT.aud (Audience): Identifies the recipients that the JWT is intended for.exp (Expiration Time): Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing.iat (Issued At): Identifies the time at which the JWT was issued.Imagine a user logs into a service. The server validates the credentials and returns a JWT. The payload might look like this:
{
"sub": "1234567890",
"name": "John Doe",
"admin": true,
"iat": 1516239022
}
The client stores this token (often in LocalStorage or a Cookie) and sends it in the Authorization header using the Bearer schema for subsequent requests. The server simply checks the signature to verify the user's identity without hitting the database for every single request.
exp claim on the server.No. OAuth2 is an authorization framework, while JWT is a token format. OAuth2 can use JWTs as access tokens, but it isn't required to.
By design, JWTs are stateless and hard to revoke before they expire. To revoke them, you usually need a "blacklist" or "revocation list" stored in a fast database like Redis.
It is a variation of Base64 that replaces + with -, / with _, and removes the padding = characters to make the string safe for URLs.
Ensure it has exactly two dots and that it follows the standard format. Sometimes hidden characters or extra spaces can break the decoding process.
Yes. This decoder runs entirely in your browser. We do not transmit your token to any server. You can even use it offline once the page is loaded.