How to use JWT Claims Analyzer
- Paste the token you want to audit.
- Read the score and the findings ordered by severity.
- Apply the recommendation next to each finding (for example shorten the lifetime or add aud).
- Re-issue the token and analyse it again until only informational items remain.
JWT Claims Analyzer features
- Checks required and recommended claims: exp, iat, nbf, iss, aud, sub, jti
- Flags long lifetimes, future iat, inverted validity windows and millisecond timestamps
- Detects secrets and personal data placed in the payload
- Warns about broad scopes, huge role lists and oversized payloads
- Includes header risks (alg=none, jku/x5u, suspicious kid) in the same report
- Security score with severity counts and a prioritised findings table
JWT Claims Analyzer example
Audit a token with a 73-year lifetime
Input:
{"iss":"https://auth.example.com","sub":"user_8f3a2c","aud":"api://orders","iat":1700000000,"exp":4102444800,"email":"layla@example.com","scope":"orders:read admin"}Output:
Score 70/100
High — Very long lifetime (76y): access tokens should live minutes to hours.
Medium — Broad scopes: "orders:read admin" grants wide access.
Low — Personal data present: email.
Info — No jti: a unique id enables revocation.Frequently asked questions about JWT Claims Analyzer
What does the security score mean?
It starts at 100 and subtracts points per finding (40 for critical, 20 for high, 10 for medium, 4 for low). It is a quick prioritisation aid, not a certification — read the individual findings.
Which checks are performed?
Presence and validity of exp, iat, nbf, iss, aud, sub and jti; token lifetime; expired or future-dated tokens; secrets or personal data in the payload; payload size; over-broad scopes; and header risks such as alg=none, jku/x5u URLs or suspicious kid values.
Why is a long lifetime flagged as a problem?
A leaked access token can be replayed until it expires. OWASP recommends short-lived access tokens (minutes to an hour) combined with refresh tokens, rather than tokens that live for days or months.
Why does it warn about my email claim?
JWT payloads are readable by everyone who handles the token. Personal data in tokens increases exposure and can fall under privacy regulation; keep payloads to identifiers and authorisation data.
Technical notes
The checks follow RFC 7519 (claim semantics), RFC 8725 (JWT best current practices) and the OWASP JSON Web Token cheat sheet. Findings are heuristics — a long lifetime may be acceptable for a refresh token, for instance — so read them in the context of how the token is used.