Decode, inspect, and analyze JSON Web Tokens instantly with our free online JWT decoder. When developing web applications, troubleshooting OAuth 2.0 or OpenID Connect (OIDC) authentication flows, or debugging microservices, JWTs encapsulate user identities and access privileges inside compact, URL-safe Base64URL strings. This tool unpackages the token's Header, Payload, and Signature into clean, readable JSON.
Built specifically for backend engineers, frontend developers, and security auditors, our JWT inspector automatically calculates token expiration dates, validates standard claims (such as iss, sub, aud, and exp), and provides real-time validity status. For other web formatting and encoding tasks, explore our related utilities like the URL Encoder and URL Decoder.
100% Private & Client-Side: Your security credentials matter. Decoding happens entirely inside your browser runtime using native JavaScript Web APIs. Session tokens, sensitive user claims, bearer tokens, and signatures are never transmitted across the network, stored in remote databases, or logged on servers.
A JSON Web Token consists of three distinct Base64URL-encoded parts separated by dots (.): Header, Payload, and Signature. Decoding unwraps the first two segments into structured JSON documents.
Input (compact encoded JWT string):
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE5MTYyMzkwMjJ9.4flK8R_yqD7r6H9cW7H3sZ3fX7Q6xM_mN2vP4kL9wR0Output - Decoded Header JSON:
{
"alg": "HS256",
"typ": "JWT"
}Output - Decoded Payload Claims JSON:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
"exp": 1916239022
}The token header confirms HMAC SHA-256 signing, while the payload reveals the user subject ID, display name, issue timestamp, and future expiration date.
.json file. exp timestamp into local date/time and flags active vs. expired tokens.iss, sub, aud, iat, nbf, exp) in a clean overview table.exp claim. RS256 vs HS256) and flagging insecure none configurations. A JSON Web Token (JWT) is a standardized, self-contained mechanism for securely transmitting information between parties as a JSON object, formalized in RFC 7519. Because tokens are digitally signed, the recipient can verify that the claims have not been tampered with after generation.
The Anatomy of a JWT: A token consists of three parts separated by period (.) delimiters:
JWT) and the signing algorithm being used (such as HS256 for HMAC with SHA-256, or RS256 for RSA signatures). iss (issuer), sub (subject), aud (audience), exp (expiration), nbf (not before), iat (issued at), and jti (unique identifier). Applications can also define custom claims like roles and permissions. Base64URL vs. Standard Base64: To make tokens completely safe for inclusion in HTTP authorization headers, cookies, and URL query strings without requiring URL-encoding, JWT specifications mandate Base64URL encoding. Base64URL replaces + with -, / with _, and removes trailing = padding characters.
Decoding vs. Verification: It is crucial to understand that decoding a JWT is not the same as verifying it. Anyone can decode a JWT because Base64URL is merely an encoding format, not encryption. Verification requires calculating the signature using the issuer's public key or shared secret. Never trust claims from an unverified token in security-critical backend systems.
exp): The most common API error. If the current UNIX timestamp exceeds the value in exp, the token is expired and must be refreshed via a refresh token flow. nbf (not before) or exp claims may be rejected prematurely. Production backends often configure a 30-to-60 second clock skew tolerance. "alg": "none" and bypassed signature checks. Ensure your backend strictly enforces expected signing algorithms. Explore complementary developer tools on BitCompiler to streamline your workflow: