Skip to main content

`FastAPI` extension for JTW Auth. This package is a fork of the original fastapi-jwt to fix issues such as sending additional parameters to the jose decode function.

Project description

fastapi-jwt

Test Publish codecov pypi

FastAPI native extension, easy and simple JWT auth


Documentation: k4black.github.io/fastapi-jwt
Source Code: github.com/k4black/fastapi-jwt

Features

  • OpenAPI schema generation
  • Native integration with FastAPI
  • Access/Refresh JWT
  • JTI
  • Cookie setting

Installation

You can access package fastapi-jwt in pypi

pip install fastapi-jwt

Usage

This library made in fastapi style, so it can be used as standard security features

from fastapi import FastAPI, Security, Response
from fastapi_jwt import JwtAuthorizationCredentials, JwtAccessBearer


app = FastAPI()
access_security = JwtAccessBearer(secret_key="secret_key", auto_error=True)


@app.post("/auth")
def auth():
    subject = {"username": "username", "role": "user"}
    return {"access_token": access_security.create_access_token(subject=subject)}

@app.post("/auth_cookie")
def auth(response: Response):
    subject = {"username": "username", "role": "user"}
    access_token = access_security.create_access_token(subject=subject)
    access_security.set_access_cookie(response, access_token)
    return {"access_token": access_token}


@app.get("/users/me")
def read_current_user(
    credentials: JwtAuthorizationCredentials = Security(access_security),
):
    return {"username": credentials["username"], "role": credentials["role"]}

For more examples see usage docs

Alternatives

  • FastAPI docs suggest writing it manually, but

    • code duplication
    • opportunity for bugs
  • There is nice fastapi-jwt-auth, but

    • poorly supported
    • not "FastAPI-style" (not native functions parameters)

FastAPI Integration

There it is open and maintained Pull Request #3305 to the fastapi repo. Currently, not considered.

Requirements

  • fastapi
  • python-jose[cryptography]

License

This project is licensed under the terms of the MIT license.

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-jwt-extended-1.0.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

fastapi_jwt_extended-1.0.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file fastapi-jwt-extended-1.0.0.tar.gz.

File metadata

  • Download URL: fastapi-jwt-extended-1.0.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for fastapi-jwt-extended-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1946b77d5af3826754449f39c60b4c15aa9be8bcde62cca5d2f28712e10099a6
MD5 e69b55d87c015dbb8895e20c98e3c0b5
BLAKE2b-256 a33d356f0fdeaf76d04adead471c8e92bae19e01ea980aa652bd2dd2a054f215

See more details on using hashes here.

File details

Details for the file fastapi_jwt_extended-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_jwt_extended-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84bc06b7dad318bbddff51fbd336068bab8495b34a2ed98857eb70b31091a241
MD5 db9b2c0b85a742763dd7891ad6d520cf
BLAKE2b-256 bae0764fd4a6f446666be6492cd152bbbc718ab7031a51203458c65737f4d1a3

See more details on using hashes here.

Supported by

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