← ClaudeAtlas

jwt-authlisted

Use when implementing JWT authentication in FastAPI or Python projects. Triggers for: token generation, verification middleware, current user extraction, access token creation, token decoding, or role-based auth. NOT for: OAuth2 provider setup, OpenID Connect, or non-Python backends.
aiskillstore/marketplace · ★ 329 · API & Backend · score 79
Install: claude install-skill aiskillstore/marketplace
# JWT Authentication Skill Expert implementation of JWT token generation, verification, and user extraction for FastAPI and Python applications. ## Quick Reference | Operation | Function | Location | |-----------|----------|----------| | Generate token | `create_access_token(data, expires_delta=None)` | `auth/jwt.py` | | Verify token | `verify_token(token: str)` | `auth/dependencies.py` | | Get current user | `get_current_user(token: str)` | `auth/dependencies.py` | | User from payload | `User.from_payload(payload)` | `auth/dependencies.py` | ## Core Workflows ### 1. Generate Access Token ```python from auth.jwt import create_access_token # Basic token with subject token = create_access_token(data={"sub": "user@example.com"}) # Token with custom expiry (minutes) from datetime import timedelta token = create_access_token( data={"sub": "user@example.com", "roles": ["admin"]}, expires_delta=timedelta(minutes=15) ) # Token with roles for RBAC token = create_access_token(data={"sub": "user@corp.com", "roles": ["editor", "viewer"]}) ``` **Claims structure:** - `sub` (required): User identifier (email, ID, or username) - `exp` (auto): Expiration time - `roles` (optional): List of role strings for authorization - Custom claims: Add any extra data as needed ### 2. Protect Endpoint with Dependency ```python from fastapi import APIRouter, Depends from auth.dependencies import get_current_user router = APIRouter() @router.get("/protected") def protected_route(user =