JWT Token Inspector & Decoder
/inspect/RFC 7519 Compliant · Expiry Timestamps · 100% Client-Side Privacy
{
"alg": "HS256",
"typ": "JWT",
"kid": "v1"
}{
"sub": "usr_0a1b2c3d4e",
"name": "Alex Chen",
"email": "alex.chen@devtoolkit.live",
"role": "Senior Software Engineer",
"iat": 1704067200,
"exp": 1999999999,
"iss": "https://auth.devtoolkit.live",
"aud": "https://api.devtoolkit.live"
}subSubject (Principal subject identifier / user ID)nameFull Name of the subjectemailEmail address of the subjectroleUser Authorization Role / ScopeiatIssued At (Unix timestamp when token was created)expExpiration Time (Unix timestamp after which token is invalid)issIssuer (Principal that issued the JWT)audAudience (Target recipients for this token)What is a JSON Web Token (JWT) and How Does It Work?
A JSON Web Token (JWT) is an open, industry-standard (RFC 7519) method for representing claims securely between two parties. JWTs are widely employed in modern web applications, Single Page Apps (SPAs), microservice architectures, and mobile APIs for stateless user authentication and granular authorization (role-based access control).
A standard compact JWT is composed of three distinct base64url-encoded string segments concatenated by periods (.):
- Header: Specifies the cryptographic signing algorithm (such as
HS256orRS256) and token type (JWT). - Payload: Encapsulates the actual identity claims (such as subject ID
sub, expirationexp, user email, and administrative role arrays). - Signature: Generated by hashing the combined header and payload using a secret key or private certificate, guaranteeing that neither the header nor payload has been tampered with in transit.
Unlike traditional session identifiers stored in centralized server caches, JWTs are completely self-contained. Any microservice with the public certificate or HMAC secret can verify identity claims without hitting an external database.
How to Use the LocalDevTools JWT Inspector
- Paste your token: Paste your raw JWT into the left input pane. The tool automatically detects and removes any preceding
Bearerprefixes or surrounding quotation marks. - Inspect claims: Examine the real-time decoded Header and Payload on the right. Recognized claims like
exp(expiration) andiat(issued at) are translated into your local time zone alongside human-readable countdowns ("Expires in 2 hours" or "Expired 3 days ago"). - Verify signature: If your token uses HMAC-SHA256 (
HS256), enter your secret key into the verification bar to confirm cryptographic integrity client-side. - Download or copy: Click Copy Payload JSON or Download Claims .json to easily integrate decoded claims into your unit test mocks or documentation.
Frequently Asked Questions (FAQ)
Is it safe to paste confidential production JWTs into this tool? ↓
Yes, 100% safe. LocalDevTools executes decoding and cryptographic verification entirely within your browser memory using native JavaScript and the standard Web Crypto API (crypto.subtle). Neither your token nor your secret key is ever transmitted over the network or saved to any server log. You can even use this tool completely offline.
Can anyone read the payload of a JWT without the secret key? ↓
Yes! A fundamental concept of standard JWTs (JWS) is that they are signed, not encrypted. The base64url encoding is merely a data serialization format, not encryption. Anyone who intercepts a token can read its payload claims. Therefore, you should never store sensitive secrets, passwords, or credit card numbers in a standard JWT payload.
What is the difference between HS256 and RS256? ↓
HS256 (HMAC with SHA-256) is a symmetric algorithm using a single shared secret key for both creating and verifying the signature. RS256 (RSA Signature with SHA-256) is an asymmetric algorithm using a private key to sign the token and a publicly distributed public key to verify it. RS256 is ideal for third-party identity providers (such as Auth0, Google Identity, and Keycloak) because client applications can verify tokens without knowing the private signing key.