Decode any JSON Web Token (JWT) instantly and inspect its header, payload and claims. This free online JWT decoder parses tokens compliant with RFC 7519, displays registered claims like iss, sub, exp, iat, and highlights token expiration status in real time. Paste an OAuth bearer token, an API access token, or any JWS to view its decoded contents. All processing runs entirely in your browser — your token never leaves your device.
JWTs are everywhere — OAuth bearer tokens, Auth0/Cognito sessions, signed API requests. The decoder splits a token into its three Base64-URL parts (header, payload, signature) and shows the claims human-readably. Decoding happens entirely in your browser; tokens never leave the page.
header.payload.signature, three Base64URL strings separated by dots.HS256, RS256, ES256) and key ID (kid) if present.iss (issuer), sub (subject), exp (expiration), iat (issued at), aud (audience), plus any custom claims your auth provider added.exp/iat/nbf from Unix seconds to readable local time and flags expired tokens.JWE (encrypted JWT) for sensitive claims, or store them server-side.exp. Tokens without expiration live forever — a leaked token is permanent compromise. Set short exp (5–60 minutes) and rotate refresh tokens.alg: none in production. A 2015 vulnerability — accepting unsigned tokens lets anyone forge any identity. Always whitelist allowed algorithms.iss and aud. A token signed for service A can be replayed against service B if both share the secret and don't check the audience.exp claim mean in a JWT?
exp (expiration time) claim is a registered JWT claim defined in RFC 7519. It specifies a UNIX timestamp (seconds since January 1, 1970 UTC) after which the token must not be accepted. If the current time exceeds the exp value, the token is expired. Servers should always check this claim. Common expiration times range from 15 minutes (access tokens) to 7 days (refresh tokens).
iss (issuer), sub (subject), aud (audience), exp (expiration time), nbf (not before), iat (issued at), and jti (JWT ID). These are optional but recommended for interoperability. Most OAuth 2.0 and OpenID Connect implementations use these claims.