Skip to content

kabilovtoha/barter_fastapi_auth

Repository files navigation

Barter authentication package

This package allows you to authorize users through a shared redis

Install package

pip install bater-fastapi-auth

Define env variables

  • REDIS_AUTH_ACCESS_PREFIX default ''
  • REDIS_AUTH_DB default 0
  • REDIS_AUTH_HOST default 127.0.0.1
  • REDIS_AUTH_PORT default 6379
  • REDIS_AUTH_PASSWORD default None
  • REDIS_AUTH_TOKEN_STORAGE default 'headers' should be 'cookies'

Define startapp and shutdown logic

from contextlib import asynccontextmanager

from fastapi import FastAPI

from src.bater_fastapi_auth import token_config
from bater_fastapi_auth.providers import RedisSingleton

@asynccontextmanager
async def lifespan(app: FastAPI):
    RedisSingleton.init_redis(
        token_config.HOST,
        token_config.PORT,
        token_config.DB,
        token_config.PASSWORD
    )
    yield
    await RedisSingleton().close()


app = FastAPI(lifespan=lifespan)

Use in view

from bater_fastapi_auth import UserRedisAuth

@app.get("/")
async def read_root(user=Depends(UserRedisAuth())):
    return user.to_dict()

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages