JWT tokens are everywhere in modern authentication but opaque to the eye. Learn the JWT structure, what every standard claim means, and how to decode any token instantly in your browser.
JWTs (JSON Web Tokens) are everywhere in modern web authentication — your login session, OAuth tokens, API keys, and service-to-service authentication all commonly use them. But a raw JWT is an opaque string of Base64URL-encoded data. Decoding it reveals the user claims, expiry time, and issuer — essential information for debugging auth issues. Here is how to inspect JWT tokens safely.
A JWT is a compact, self-contained token used to securely transmit information between parties as a JSON object. It consists of three parts separated by dots:
JWT) and the signing algorithm (HS256, RS256, etc.).sub (subject/user ID), iss (issuer), exp(expiration time), iat (issued at), and aud (audience). Custom claims can contain any data the issuing application adds.All three parts are individually Base64URL-encoded and concatenated with dots.
Decoding is simply reading the Base64URL-encoded content of the header and payload. Anyone can decode a JWT — the payload is not encrypted, just encoded. Decoding reveals the claims inside the token.
Verifying checks the signature to confirm that the token was issued by a trusted party and has not been tampered with. Verification requires the issuer's secret key or public key. You cannot verify a token without this key.
Browser-based JWT decoders only decode — they do not verify the signature (and cannot, without the secret key). For debugging purposes, this is sufficient. For production authentication, always verify JWTs on your server.
| Claim | Full name | Meaning |
|---|---|---|
sub | Subject | User ID or entity the token refers to |
iss | Issuer | Who created and signed the token (e.g. your auth server URL) |
aud | Audience | Who the token is intended for (e.g. your API) |
exp | Expiration Time | Unix timestamp when the token expires |
iat | Issued At | Unix timestamp when the token was issued |
nbf | Not Before | Token is not valid before this timestamp |
jti | JWT ID | Unique identifier for the token (prevents replay attacks) |
{).exptimestamp — the tool should convert it to a human-readable date so you can quickly see if the token has expired.JWT decoding is an essential debugging skill for any developer working with modern authentication. The ToolsGravity JWT Decoder splits any JWT into its header, payload, and signature, displaying the claims in human-readable JSON — including converting Unix timestamps to readable dates. Use it for debugging auth issues, checking token expiry, and understanding what your auth system is sending. For JSON-formatted payloads outside JWTs, the JSON Formatter is your companion tool.