A middleware for securing fastapi application.
Project description
FastAPI Auth Middleware
FastAPI Auth Middlewawre is a middleware for securing FastAPI application. It provides a convenient way to secure your FastAPI routes and endpoints using jwt tokens.
Features
- Seamless integration with FastAPI applications.
- Easily protect routes and endpoints with JWT authentication.
- Lightweight and designed for simplicity.
Requirements
Python 3.8
Installation
$ pip install fastapi_auth_middlewares
Example
Create it
- Create a file
main.pywith:
from fastapi import FastAPI, Request
from fastapi_auth_middlewares import JwtAuthMiddleware
app = FastAPI(
title="Secured Project",
version="1.0",
)
app.add_middleware(
JwtAuthMiddleware,
secret_key="your_secret_key",
algorithms=["HS256"],
# Excluding Documentation (OpenAPI and favicon routes) and health check routes from authentication
public_paths=["/docs", "/favicon.ico", "/openapi.json", "/api/health"],
)
@app.get("/api/health")
async def health():
return {"message": "server is up and running."}, 200
@app.get("/protected")
async def protected_route(request: Request):
# Access the decoded_token from the middleware
decoded_token = request.state.user
# Your logic using the decoded_token
user_id = decoded_token.get("user_id")
username = decoded_token.get("username")
return {
"message": "This is a protected route",
"user_id": user_id,
"username": username,
}
Run it
- Run the server with:
$ uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.
Contributing
Feel free to contribute to this project.
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastapi_auth_middlewares-0.1.0.tar.gz.
File metadata
- Download URL: fastapi_auth_middlewares-0.1.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6e1df7148a07c2e00ed81e03a5b24d4f5662db06bc01ebe8c01f9a0bb70dbee
|
|
| MD5 |
569f5ef61cdf7fcdc32096d727c346e3
|
|
| BLAKE2b-256 |
9fae60fc411e937909a4343034760223de22465ff79d57ce906fb21d567584ce
|
File details
Details for the file fastapi_auth_middlewares-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fastapi_auth_middlewares-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7ad5bc6e08d7cfa78a2cb5945e21d1c0f6e5c418f6e82b5c64e7a2cd7818bba
|
|
| MD5 |
a440a3c8fc6626d1ad5c48bd4d901265
|
|
| BLAKE2b-256 |
aa237af570da5fa71fb363f7e8da27fe9f95e506b66a48e316188a57fbca33b4
|