Skip to content

qqq-tech/fastapi-boilerplate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI Boilerplate

Features

  • SQlAlchemy session
  • Custom user class
  • Top-level dependency
  • Dependencies for specific permissions

SQLAlchemy for asyncio context

from core.db import session

Just import session and use it.

Custom user for authentication

from fastapi import Request


@home_router.get("/")
def home(request: Request):
    return request.user.id

Note. you have to pass jwt token via header like Authorization: Bearer 1234

Custom user class automatically decodes header token and store user information into request.user

If you want to modify custom user class, you have to update below files.

  1. core/fastapi/schemas/current_user.py
  2. core/fastapi/middlewares/authentication.py

CurrentUser

class CurrentUser(BaseModel):
    id: int = None

Simply add more fields based on your needs.

AuthBackend

current_user = CurrentUser()

After line 18, assign values that you added on CurrentUser.

Top-level dependency

Set a callable function when initialize FastAPI() app through dependencies argument.

Dependencies for specific permissions

IsAuthenticated

Coming soon...

IsAdmin

Coming soon...

About

FastAPI Boilerplate

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.8%
  • Mako 3.2%
  • Dockerfile 1.0%