`FastAPI` extension for JTW Auth
Project description
fastapi-jwt
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[authlib]
# or
pip install fastapi-jwt[python_jose]
The fastapi-jwt will choose the backend automatically if library is installed with the following priority:
- authlib
- python_jose (deprecated)
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
authlib
orpython-jose[cryptography]
(deprecated)
License
This project is licensed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for fastapi_jwt-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4255ce929f1c59c2bbcf5295b485995c8263466aa733a0dd164b052b4a476a3 |
|
MD5 | 9f139810a1d0ef4120dbddf18da2ffcf |
|
BLAKE2b-256 | ff4a60eb509cd08a591967fbdaab7f158c18d12172336432f3634ed4068b4101 |