This validates JWTs by checking structure, claims, and signatures in that order, stopping at the first failure. It handles HMAC, RSA, and ECDSA using secrets, PEM keys, or JWKS endpoints. The skill is paranoid about security in the right ways: it never trusts the token's alg header to prevent algorithm confusion attacks, always uses explicit algorithm allowlists, and passes secrets through environment variables instead of command line args to avoid shell history exposure. It gives you a clear pass/fail report with specifics like expiration times and which check failed. If you don't provide a key, it validates structure and claims but explicitly tells you the signature wasn't verified.

skills.sh installs
658
GitHub stars
20
last updated
Aug 21, 2026

Install

$ npx -y skills add jsonwebtoken/jwt-skills --skill jwt-validate --agent claude-code

Installs into .claude/skills of the current project.

Files

JWT Validate

Verify a JWT's signature and validate its claims. Confirms the token is authentic, unexpired, and structurally sound.

Validation Order

Check in this order. Stop and report at the first failure.

1. Structure

  • Exactly 3 dot-separated parts, each valid base64url
  • Header and payload parse as valid JSON
  • Header contains alg; alg is not none (unless explicitly expected)

2. Claims

  • exp must be in the future (report time until expiry or how long ago it expired)
  • nbf must be in the past or present
  • iat must be in the past; flag if > 30 days old
  • iss, aud, sub — if user provides expected values, they must match
  • Allow 60 seconds clock skew tolerance on all time checks

3. Signature

Requires the user to provide a secret, PEM public key, or JWKS URI. Always pass secrets and tokens via inline env vars to avoid shell history exposure.

Node.js (preferred):

First, ensure jose is available — install it globally if missing:

node --input-type=module -e "await import('jose')" 2>/dev/null || npm install -g jose

Then verify the token:

Sponsors

Details

Repository
github.com/jsonwebtoken/jwt-skills
First seen
Jun 3, 2026

More from jsonwebtoken/jwt-skills

All 3

Recommended

1juliusbrussee avatarcavemanjuliusbrussee/cavemanUltra-compressed communication mode. Cuts output tokens 65% (measured) by speaking like caveman while keeping full technical accuracy. Supports intensity levels618.3Kskills.sh installs
2mattpocock avatargrill-memattpocock/skillsA relentless interview to sharpen a plan or design.1.5Mskills.sh installs
3shadcn avatarimproveshadcn/improveSurvey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute. Strictly read-only on s40Kskills.sh installs
4obra avatarsystematic-debuggingobra/superpowersUse when encountering any bug, test failure, or unexpected behavior, before proposing fixes326.7Kskills.sh installs
5forrestchang avatarkarpathy-guidelinesforrestchang/andrej-karpathy-skillsBehavioral guidelines to reduce common LLM coding mistakes through explicit assumptions, simplicity, and verifiable success criteria.17.9Kskills.sh installs
6vercel-labs avatarfind-skillsvercel-labs/skillsHelps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express int4.3Mskills.sh installs