JWT Decoder
Private: nothing leaves your browser
Paste a token above to read what is inside it.
Paste a JSON Web Token to read its header and payload, see every claim explained in plain words, and find out whether it has expired. The token is decoded on your own device, so a live access token is safe to paste here.
About this JWT decoder
A JSON Web Token is three base64url chunks joined by dots: a header saying how it was signed, a payload of claims, and a signature over the first two. The payload is not encrypted. Anyone holding the token can already read it, which is exactly why you should never put a password or a card number in one. This page does that reading for you and labels each claim, so you can see who issued the token, who it is for and when it stops working. Each chunk on its own is ordinary base64url, which the Base64 decoder will open if you want to see the raw bytes rather than the labelled claims.
The decoding is JavaScript on this page. Your token is never sent anywhere, never logged and never stored, so pasting a live access token from your own app carries no more risk than looking at it in your terminal. The same page keeps working with your connection switched off.
How to decode a JWT
- Paste the token. An
Authorization: Bearer ...header pasted whole works too: the prefix is stripped for you. - Read the status line first. It tells you whether the token is still valid, and by how long it missed if not.
- The claims list shows every field with the timestamps turned into real dates and each standard claim explained.
- The header and payload panes give you the raw JSON, with a copy button on each.
- Press Load sample to see a complete token pulled apart.
Common questions about JWTs
Is it safe to paste a real token here?
Why does it not verify the signature?
What do exp, nbf and iat mean?
iat is when it was issued, exp is when it stops being accepted, and nbf is the earliest moment it starts being accepted. This page converts all three to your local time and says how long ago or how far ahead that is.
My token will not decode. What is wrong?
What does an algorithm of "none" mean?
Next