Everything You Need to Know About JWT (JSON Web Tokens)
TL;DR
JWT (JSON Web Token) has 3 parts: Header (algorithm), Payload (claims like user_id, exp), and Signature (verification). JWTs are encoded, NOT encrypted—anyone can read the payload. Never store sensitive data in them. Use our JWT Decoder to inspect tokens during debugging. Key Facts:
- Structure: header.payload.signature (Base64 encoded, dot-separated)
- Common claims: sub (subject), exp (expiration), iat (issued at)
- Sent via Authorization: Bearer
header - 30K+ monthly searches for "jwt decoder online"
In the world of modern web development, JWT (JSON Web Tokens) has become the industry standard for secure communication between a client and a server. If you've ever implemented authentication in a Single Page Application (SPA), you've likely used them.
What is a JWT?
A JSON Web Token is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object.
The Structure of a JWT
A JWT consists of three parts separated by dots (.):
1. Header
Contains the type of token (JWT) and the signing algorithm being used (e.g., HS256 or RS256).2. Payload
Contains the claims. Claims are statements about an entity (typically, the user) and additional data.- Registered claims:
sub(subject),exp(expiration),iat(issued at). - Public/Private claims: Custom data like
user_roleoremail.
3. Signature
Created by taking the encoded header, encoded payload, a secret, and the algorithm specified in the header to sign the token. This ensures the sender is who they say they are and that the message wasn't changed along the way.How JWT Authentication Works
- Login: User sends credentials to the server.
- Token Generation: Server validates credentials and signs a JWT.
- Storage: Client stores the token (usually in LocalStorage or a Cookie).
- Authorization: Client sends the JWT in the
Authorization: Bearerheader for subsequent requests. - Validation: Server verifies the signature and grants access.
Security Best Practices
- Never store sensitive data: JWTs are encoded, not encrypted. Anyone who has the token can read the payload.
- Set short expiration times: Use Refresh Tokens for longer sessions.
- Use HTTPS: Always transmit tokens over secure connections.
- Validate on every request: The server must always verify the signature.
Debugging JWTs
When you're building an authentication system, you often need to see what's inside a token to check if the claims are correct or if it has expired.
You can use our Online JWT Decoder to instantly inspect the header and payload of any token. It's 100% client-side, so your sensitive tokens never leave your browser.
Conclusion
JWTs provide a powerful and flexible way to handle authentication in distributed systems. By understanding their structure and following security best practices, you can build secure and scalable applications.
Troubleshooting an auth issue? Use our Free JWT Decoder to inspect your tokens now.