Skip to main content

JWT Debugger

Paste any JWT to decode its header, payload, and signature. Inspect all claims with descriptions, check expiry status, and visualize the token structure — completely client-side, nothing sent to any server.

✓ 60K+ developers trust DevPlaybook ✓ Runs 100% in your browser ✓ No tokens sent to any server

Real-World Use Cases

1. Debugging a "401 Unauthorized" API Error

Your frontend gets a 401 from the API. Paste the JWT from the Authorization: Bearer header to check: Is the token expired? Does the aud claim match the expected audience?

What You See

Header: {"alg": "RS256", "typ": "JWT"}

Payload:
  "sub": "user_42"
  "aud": "api.staging.com"  ← wrong!
  "exp": 1712300000       ← expired
  "iat": 1712296400

Diagnosis

✗ Token expired 2 hours ago
✗ Audience mismatch:
  Expected: api.production.com
  Got:      api.staging.com

Fix: refresh the token and
ensure AUTH_AUDIENCE env var
points to production.

2. Verifying OAuth 2.0 Scopes After Login

After implementing Google or GitHub OAuth, paste the id_token to verify the granted scopes, user email, and issuer match your OAuth configuration.

Decoded Payload

{
  "iss": "https://accounts.google.com",
  "sub": "1102938475610",
  "email": "[email protected]",
  "email_verified": true,
  "scope": "openid email profile",
  "exp": 1712389200
}

Checklist

✓ Issuer matches Google
✓ Email is verified
✓ Scopes include "email"
✓ Token valid for 50 more min

Safe to create user session.

3. Comparing HS256 vs RS256 Token Structure

Learning about JWT algorithms? Paste tokens signed with different algorithms side-by-side. The debugger shows the alg field in the header, making it easy to see how HS256 (symmetric) and RS256 (asymmetric) differ in practice.

HS256 Header

{"alg": "HS256", "typ": "JWT"}

→ Signed with shared secret
→ Signature: 32 bytes HMAC

RS256 Header

{"alg": "RS256", "typ": "JWT", "kid": "abc123"}

→ Signed with private key
→ Signature: 256 bytes RSA
→ kid identifies which key

How to Use — Step by Step

  1. Copy the JWT — Grab the token from your browser DevTools (Application → Cookies or Network → Headers), API response, or auth library's debug output.
  2. Paste the token — Paste the full eyJhbG... string into the input field. The tool splits and decodes all three parts instantly.
  3. Check the header — Verify the algorithm (alg) matches what your backend expects. Mismatches cause verification failures.
  4. Inspect the payload — Review claims like exp (expiry), sub (subject), and iss (issuer). The tool highlights expired tokens and explains each standard claim.
  5. Debug — Use the decoded information to fix auth issues: wrong audience, expired token, missing roles, or algorithm mismatch.

Frequently Asked Questions

What is a JWT token?▼

A JWT (JSON Web Token) is a compact, URL-safe token format used for securely transmitting claims between parties. It consists of three Base64URL-encoded parts: header (algorithm and token type), payload (claims like user ID, roles, expiry), and signature (for verifying authenticity). JWTs are widely used in API authentication and OAuth 2.0 flows.

Is it safe to paste my JWT token here?▼

Yes — this tool runs entirely in your browser. Your token is never sent to any server. However, avoid pasting production tokens from sensitive systems into any online tool as a best practice. For debugging production issues, consider using a local tool or redacting sensitive claims.

Why is the signature shown but not verified?▼

JWT signature verification requires your secret key (for HMAC algorithms like HS256) or the public key (for RSA/EC algorithms like RS256/ES256). Since these keys should never be shared or sent to a browser, client-side signature verification is not possible. Use your backend or jwt.io for signature verification with your key.

What do iat, exp, nbf, sub, iss mean?▼

These are registered JWT claims: iat (Issued At) — Unix timestamp when the token was created. exp (Expiration) — Unix timestamp when it expires; tokens after this time are invalid. nbf (Not Before) — token is not valid before this time. sub (Subject) — the user or entity the token represents. iss (Issuer) — who created and signed the token.

What is the difference between HS256 and RS256?▼

HS256 (HMAC-SHA256) uses a shared secret key — the same key is used to sign and verify. It's simpler but requires all parties to share the secret. RS256 (RSA-SHA256) uses a public/private key pair — the private key signs, the public key verifies. RS256 is better for distributed systems where multiple services verify tokens without access to the signing key.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

JWT Decoder OpenAPI Validator API Response Mock Generator API Response Time Tester JWT Builder OpenAPI Schema Validator OAuth2 Flow Visualizer OpenAPI Mock Generator OAuth2 Flow Debugger API Test Case Generator API Request Builder HTTP Security Headers Generator JWT Debugger Pro OAuth2 Flow Tester API Mock Server Config Generator HTTP Security Headers Checker authentik API Key Generator API Rate Limit Calculator API Response Formatter & Analyzer HTTP API Tester LLM Cost Calculator LLM Token Counter AI Prompt Cost Calculator REST API Request Builder Content Security Policy Builder LLM Prompt Cost Calculator API Response Mocker HTTP Header Inspector AI Rate Limit Calculator Prompt Injection Tester Token Context Calculator GCP Service Account Key Auditor Token Counter & Cost Estimator HTTP Headers Analyzer AI Doc Generator — Pro Tool AI System Guardian .htaccess Generator HTTP Methods Reference HTTP Code Snippet Generator HTTP Status Code Reference HTTP Status Code Reference JSON Diff Viewer JSON Diff nginx Config Generator Password Strength Checker Rate Limiter Tester API Changelog Generator HTTP Mock Response Builder HMAC Generator CSP Header Builder Rate Limit Calculator CORS Policy Builder AWS IAM Policy Validator HTTP Cookie Parser SBOM Generator HTTP Status Code Lookup TOTP Code Generator HTTP Status Code Lookup Vue Component Generator HTTP Status Code Reference LLM Context Window Calculator HTTP Header Analyzer Dockerfile Linter mTLS Certificate Chain Builder Prompt Token Estimator Mock Service Worker (MSW) API Mocking Guide Pulumi Modern IaC Guide HashiCorp Vault Secrets Management Guide AES Encryptor / Decryptor OpenAI Token Counter Casdoor Docker Layer Optimizer HTML5 Canvas API Playground GraphQL Client Configurator Axios Interceptor Builder OpenAI Function Calling Generator AI Context Window Visualizer AI API Rate Limit Calculator Password Strength Analyzer

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →