JWT Decoder
Decode, inspect, and analyze JSON Web Tokens locally in your browser. View JOSE headers, payload claims, expiration timestamps, and signature segments with zero server uploads.
Decoding Does Not Prove Authenticity
JWT payloads are Base64URL-encoded, not encrypted. Anyone can inspect claims. Signature verification is not performed here, meaning decoded tokens may be forged.
Expires in In 1193 days (Jan 1, 2030, 12:00:00 AM)
UTC: Tue, 01 Jan 2030 00:00:00 GMTActive since 1045 days ago (Nov 14, 2023, 10:13:20 PM)
UTC: Tue, 14 Nov 2023 22:13:20 GMTIssued 1045 days ago (Nov 14, 2023, 10:13:20 PM)
UTC: Tue, 14 Nov 2023 22:13:20 GMT{
"alg": "HS256",
"typ": "JWT",
"kid": "v1-2026"
}{
"iss": "https://api.vclick-tools.dev",
"sub": "user_987654321",
"aud": [
"https://api.vclick-tools.dev",
"v-dashboard"
],
"exp": 1893456000,
"nbf": 1700000000,
"iat": 1700000000,
"jti": "ca9f48d1-8dcf-4848-be45-7a90fbebec1a",
"roles": [
"admin",
"developer"
],
"profile": {
"name": "VClick Security Analyst",
"email": "developer@vclick-tools.com",
"is_verified": true
},
"preferred_theme": "dark"
}Claims Inspector (10)
| Claim | Type | Decoded Value | Interpretation / RFC Meaning |
|---|---|---|---|
| issRFC 7519 | string | https://api.vclick-tools.dev | Issuer — Identifies the principal that issued the JWT |
| subRFC 7519 | string | user_987654321 | Subject — Identifies the principal that is the subject of the JWT |
| audRFC 7519 | array [2] | ["https://api.vclick-tools.dev","v-dashboard"] | Audience — Identifies the recipients that the JWT is intended for |
| expRFC 7519 | number | 1893456000 | Expiration Time — Identifies the expiration time on or after which the JWT MUST NOT be accepted |
| nbfRFC 7519 | number | 1700000000 | Not Before — Identifies the time before which the JWT MUST NOT be accepted for processing |
| iatRFC 7519 | number | 1700000000 | Issued At — Identifies the time at which the JWT was issued |
| jtiRFC 7519 | string | ca9f48d1-8dcf-4848-be45-7a90fbebec1a | JWT ID — Case-sensitive unique identifier for the token (prevents replay) |
| roles | array [2] | ["admin","developer"] | Custom application claim |
| profile | object | {"name":"VClick Security Analyst","email":"developer@vclick-tools.com","is_verified":true} | Custom application claim |
| preferred_theme | string | dark | Custom application claim |
How to Decode and Inspect a JWT Online
Paste Your JWT
Paste your compact token string or Bearer authorization header directly into the token input editor.
Automatic Segment Detection
The decoder strips Bearer prefixes, verifies the 3 dot-separated segments, and decodes Base64URL to JSON.
Inspect Header and Signature
View the JOSE header signing algorithm (alg) and key ID (kid), along with the raw signature segment.
Analyze Payload Claims
Review formatted payload JSON, claim data types, subject identifiers, and registered claim interpretations.
Check Expiration and Copy
Check relative expiration time and copy individual decoded header, payload, or signature blocks.
What Is a JWT Decoder?
How to Decode a JWT
Understanding the Three JWT Parts
.): header.payload.signature.JWT Header Explained
alg (the cryptographic signing algorithm, such as HS256 or RS256) and typ (the token type, typically 'JWT').kid (Key ID, identifying which specific key or certificate was used to sign the token) and cty (Content Type, used in nested token structures).JWT Payload and Claims
JWT Signature Explained
Base64URL Encoding in JWTs
+ and / with URL-safe alternatives - and _, and omits trailing = padding characters.JWT Registered Claims
iss (Issuer), sub (Subject), aud (Audience), exp (Expiration Time), nbf (Not Before), iat (Issued At), and jti (JWT ID).iss, sub, aud, and exp to prevent token misuse across different services.Understanding the exp Claim
exp claim identifies the expiration timestamp on or after which the JWT must not be accepted for processing. It is represented as a NumericDate (seconds elapsed since Unix epoch: 1970-01-01T00:00:00Z UTC).Understanding nbf and iat
nbf (Not Before) claim specifies the exact timestamp before which the token must not be accepted, allowing systems to issue tokens that only activate in the future.iat (Issued At) claim records the timestamp when the token was originally generated. Verifying applications use iat to calculate token age or revoke all tokens issued before a user changed their credentials.Issuer, Subject, and Audience Claims
iss claim identifies the authority that minted the token (such as an OAuth 2.0 / OIDC authorization server). The sub claim identifies the principal or user ID represented by the token.aud claim identifies the target systems or API endpoints that are authorized to accept the token. Audience can be a single string or an array of strings representing multiple resource servers.Custom JWT Claims
JWT Expiration and Token Status
exp boundary), or Inactive (prior to its nbf activation).JWT Decoding vs Signature Verification
JWT Security and Sensitive Data
Privacy and Browser-Based JWT Decoding
JWT Debugging Best Practices
exp timestamp for clock skew, ensure the aud claim matches your API identifier, and verify that the alg matches your backend verifier configuration.Frequently Asked Questions
Common questions about JWT Decoder and how it works.
Was this tool useful?
Your feedback helps us improve VClick Tools.