Skip to main content

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 details)

Uploaded Source

Built Distribution

fastapi_jwks-0.1.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_jwks-0.1.1.tar.gz.

File metadata

  • Download URL: fastapi_jwks-0.1.1.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for fastapi_jwks-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6d54f0750ad54349c6a13640f981020aee5314ee769cf8cec2bea55e7d1254e9
MD5 0e024e3e956478b05526945790437272
BLAKE2b-256 e19acd52e773192bc287940a5e9190e225719c75b39d7a49376567b2988860bd

See more details on using hashes here.

File details

Details for the file fastapi_jwks-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: fastapi_jwks-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for fastapi_jwks-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8f7f013e6d0fea00bb73d158a605915443b9647ea67c1754aaf7c847f3e9484d
MD5 872c4d509d232786e724ff0022627b05
BLAKE2b-256 53bb160f9d74dc31797caaa720e280bf206ab4c2ff2de36f3781b3656bad05a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page