What is a JWT Token?
A JSON Web Token (JWT) is a compact, URL-safe format for securely transmitting claims between parties. Defined in RFC 7519, it is the industry standard for stateless authentication and authorization in web applications and APIs.
A JWT consists of three Base64URL-encoded parts separated by dots:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKK...
Header Payload Signature
JWT Structure
Header
The header contains metadata about the token type and the signing algorithm used:
{
"alg": "HS256",
"typ": "JWT"
}
Common algorithms: HS256 (HMAC-SHA256), RS256 (RSA-SHA256), ES256 (ECDSA), none.
Payload
The payload contains claims — statements about an entity (typically the user) and additional metadata. There are three types:
- Registered claims: Predefined, standardized claims like
iss,sub,exp,iat - Public claims: Widely used claim names registered in the IANA JWT Claims Registry
- Private claims: Custom claims agreed upon by specific parties
Signature
The signature verifies the token was not tampered with. It is computed as:
HMACSHA256(base64url(header) + "." + base64url(payload), secret)
The signature cannot be verified without the corresponding secret key or public key.
Standard JWT Claims
| Claim | Name | Description |
|---|---|---|
iss | Issuer | Who issued the token (e.g., https://auth.example.com) |
sub | Subject | Who the token is about (e.g., a user ID) |
aud | Audience | Who the token is intended for |
exp | Expiration | Unix timestamp after which the token is invalid |
nbf | Not Before | Unix timestamp before which the token is not yet valid |
iat | Issued At | Unix timestamp when the token was created |
jti | JWT ID | Unique identifier to prevent token replay |
How to Use This JWT Decoder
- Paste your JWT token into the input box (or click Paste Example to try a demo).
- Click Decode — or the tool decodes automatically when you paste a complete token.
- The Payload tab shows all claims with descriptions, formatted timestamps, and sensitive-data warnings.
- The Header tab shows the algorithm and token type.
- The Signature tab shows the raw signature segment for reference.
Decoding vs. Verification
Decoding a JWT (splitting on . and Base64URL-decoding each part) reveals its contents but does not confirm authenticity. Anyone can create a token with any payload if they know the format.
Verification — checking that the signature matches the header and payload — requires:
- The secret key for HMAC algorithms (
HS256,HS384,HS512) - The public key for asymmetric algorithms (
RS256,ES256,PS256, etc.)
This tool only decodes; use a server-side library for production signature verification.
Sensitive Claims
JWTs often carry personally identifiable information (PII). This tool highlights claims that typically contain sensitive data:
sub— User identifieremail— Email addressphone_number— Phone numbergiven_name,family_name— User’s namepicture— Profile photo URL
Never paste tokens with live authentication credentials into untrusted tools. While this tool runs entirely in your browser, follow your organization’s security policy when handling tokens.
Privacy
All decoding runs locally in your browser using JavaScript’s built-in atob() and JSON.parse(). No data is transmitted to any server. Your token is not stored, logged, or shared.