No project description provided
Project description
fastapi-jwks
fastapi-jwks is a Python library designed to facilitate the integration of JSON Web Key Set (JWKS) with FastAPI applications. It provides a set of tools to automatically query the JWKS endpoint and verify the tokens sent over a request.
Key Features
- JWKS Endpoint Querying: The library automatically queries the JWKS endpoint to fetch the necessary keys for token verification.
- Token Verification: It verifies the tokens sent over a request with the JWKS endpoint, ensuring the authenticity and integrity of the data.
- Middleware Integration: The library includes a middleware that can be easily integrated into your FastAPI application to handle token validation on every request.
- Pydantic Model Support: It supports Pydantic models for token data extraction, providing a seamless way to work with the token data.
Usage
pip install fastapi_jwks
from fastapi import FastAPI
from fastapi import Depends
from pydantic import BaseModel
from fastapi_jwks.injector import JWTTokenInjector
from fastapi_jwks.middlewares.jwk_auth import JWKSAuthMiddleware
from fastapi_jwks.models.types import JWKSConfig, JWTDecodeConfig
from fastapi_jwks.validators import JWKSValidator
# The data we want to extract from the token
class FakeToken(BaseModel):
user: str
app = FastAPI()
payload_injector = JWTTokenInjector[FakeToken]()
@app.get("/my-endpoint", response_model=FakeToken)
def my_endpoint(fake_token: Depends(payload_injector)):
return fake_token
jwks_verifier = JWKSValidator[FakeToken](
decode_config=JWTDecodeConfig(),
jwks_config=JWKSConfig(url="http://my-fake-jwks-url/my-fake-endpoint"),
)
app.add_middleware(JWKSAuthMiddleware, jwks_validator=jwks_verifier)
...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fastapi_jwks-0.1.1.tar.gz
(4.9 kB
view hashes)
Built Distribution
Close
Hashes for fastapi_jwks-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f7f013e6d0fea00bb73d158a605915443b9647ea67c1754aaf7c847f3e9484d |
|
MD5 | 872c4d509d232786e724ff0022627b05 |
|
BLAKE2b-256 | 53bb160f9d74dc31797caaa720e280bf206ab4c2ff2de36f3781b3656bad05a5 |