FastAPI JWK Auth is a Python package designed to enhance FastAPI applications with easy and secure JSON Web Token (JWT) validation using JSON Web Key Sets (JWKS). It simplifies the integration of JWT-based authentication in your FastAPI project when JWKS URLs are employed for key retrieval.
- JWKS-Based JWT Validation: Seamlessly validate JWTs using JWKS obtained from configured URLs.
- FastAPI Middleware Integration: Integrate the provided
JWTMiddleware
class into your FastAPI application middleware likeapp.add_middleware(JWTMiddleware)
to secure your routes with JWT validation. - Fastapi Router dependency: Integrate the provided
jwk_validator
function into your FastAPI router likeapp.include_router(auth_app.router, dependencies=[Depends(jwk_validator)])
to secure your product with JWT validation - Efficient JWK Handling: Retrieve and utilize JSON Web Key Sets efficiently in your FastAPI routes with the
fetch_jwks
function. - Exception Handling: Easily manage JWT validation exceptions using FastAPI's HTTPException.
Install the package using pip:
pip install fastapi-jwk-auth
from fastapi import FastAPI, Depends
from fastapi_jwk_auth.jwks_auth import jwk_validator, JWKMiddleware
app = FastAPI()
# Include the JWT Middleware
app.add_middleware(JWTMiddleware)
from fastapi import FastAPI, Depends
from fastapi_jwk_auth.jwks_auth import jwk_validator, JWKMiddleware
app=FastAPI()
app.include_router(auth_app.router, dependencies=[Depends(jwk_validator)])
Set the following environment variable to the JSON Web Key Set (JWKS) URI:
export JWK_HOST="https://your-identity-server"
Feel free to open PR/Issues.
This project is licensed under the MIT License.
For questions or feedback, feel free to contact us at [[email protected]].