def get_users_router(db): users_collection = db["users"] user_db = MongoDBUserDatabase(UserDB, users_collection) fastapi_users = FastAPIUsers( user_db, [jwt_authentication], User, UserCreate, UserUpdate, UserDB, ) users_router = APIRouter() users_router.include_router( fastapi_users.get_auth_router(jwt_authentication), prefix="/auth/jwt", tags=["auth"], ) users_router.include_router(fastapi_users.get_register_router(), prefix="/auth", tags=["auth"]) users_router.include_router( fastapi_users.get_reset_password_router(settings.JWT_SECRET_KEY), prefix="/auth", tags=["auth"], ) users_router.include_router(fastapi_users.get_users_router(), prefix="/users", tags=["users"]) return users_router
async def configure_db_and_routes(): app.mongodb_client = AsyncIOMotorClient(settings.DB_URL, uuidRepresentation="standard") app.db = app.mongodb_client.get_default_database() user_db = MongoDBUserDatabase(UserDB, app.db["users"]) app.fastapi_users = FastAPIUsers( user_db, [jwt_authentication], User, UserCreate, UserUpdate, UserDB, ) app.include_router(get_users_router(app)) app.include_router(get_todo_router(app))
async def startup(): await db.connect_to_database(path=DATABASE_URL) disc_db = db.client[DATABASE_NAME] global fs fs = AsyncIOMotorGridFSBucket(disc_db) global song_db song_db = disc_db.get_collection(SONGS_DB) global mix_db mix_db = disc_db.get_collection(MIX_DB) user_col = disc_db[USER_DB] global user_db user_db = MongoDBUserDatabase(UserDB, user_col) global fastapi_users fastapi_users = FastAPIUsers(user_db, [jwt_authentication], User, UserCreate, UserUpdate, UserDB) app.include_router(fastapi_users.get_auth_router(jwt_authentication), prefix="/auth/jwt", tags=["auth"]) app.include_router( fastapi_users.get_register_router(after_register=on_after_register), prefix="/auth", tags=["auth"]) app.include_router( fastapi_users.get_reset_password_router( SECRET, after_forgot_password=on_after_forgot_password), prefix="/auth", tags=["auth"], ) app.include_router( fastapi_users.get_verify_router( SECRET, after_verification_request=after_verification_request), prefix="/auth", tags=["auth"], ) app.include_router(fastapi_users.get_users_router(), prefix="/users", tags=["users"])
pass class UserUpdate(User, models.BaseUserUpdate): pass class UserDB(User, models.BaseUserDB): pass client = motor.motor_asyncio.AsyncIOMotorClient(DATABASE_URL, uuidRepresentation="standard") db = client["database_name"] collection = db["users"] user_db = MongoDBUserDatabase(UserDB, collection) def on_after_register(user: UserDB, request: Request): print(f"User {user.id} has registered.") def on_after_forgot_password(user: UserDB, token: str, request: Request): print(f"User {user.id} has forgot their password. Reset token: {token}") def after_verification_request(user: UserDB, token: str, request: Request): print( f"Verification requested for user {user.id}. Verification token: {token}" )
app = FastAPI() # app.add_middleware(HTTPSRedirectMiddleware) # enable for https dataHandler = DataHandler.BinanceWrapper() tempCryptoList = dataHandler.getcryptoSymbols() cryptoList = [] for symbol in tempCryptoList: for tether in dataHandler.tethers: if (tether in symbol and symbol not in cryptoList): cryptoList.append(symbol) cryptoData = CryptoData.CryptoDataReader() client = motor.motor_asyncio.AsyncIOMotorClient(DATABASE_URL) db = client["cryptoviz"] users = db["users"] user_db = MongoDBUserDatabase(UserDB, users) auth_backends = [ CookieAuthentication(secret=SECRET, lifetime_seconds=3600 * 24, cookie_name="user_auth", cookie_secure=True, cookie_httponly=True) ] fastapi_users = FastAPIUsers( user_db, auth_backends, User, UserCreate, UserUpdate,
async def get_user_db(): yield MongoDBUserDatabase(UserDB, collection)
import motor.motor_asyncio from decouple import config from fastapi_users.db import MongoDBUserDatabase from ..models.user import UserDB MONGO_DETAILS = config('MONGO_DETAILS') client = motor.motor_asyncio.AsyncIOMotorClient(MONGO_DETAILS) database = client.Boletin usuarios_collection = database.get_collection("usuarios") user_db = MongoDBUserDatabase(UserDB, usuarios_collection)
from fastapi_users import models from fastapi_users.db import MongoDBUserDatabase from .connection import client_db class User(models.BaseUser): nickname: str class UserCreate(models.BaseUserCreate): nickname: str class UserUpdate(User, models.BaseUserUpdate): nickname: str class UserDB(User, models.BaseUserDB): nickname: str user_collections = MongoDBUserDatabase(UserDB, client_db["users"])
class UserCreate(models.CreateUpdateDictModel): email: EmailStr password: str class UserUpdate(User, models.BaseUserUpdate): pass class UserDB(User, models.BaseUserDB): pass collection = db["users"] user_db = MongoDBUserDatabase(UserDB, db["users"]) async def on_after_register(user: UserDB, request: Request): print(f"User {user.id} has been registered.") def on_after_forgot_password(user: UserDB, token: str, request: Request): print(f"User {user.id} has forgot their password. Reset token: {token}") def after_verification_request(user: UserDB, token: str, request: Request): print( f"Verification requested for user {user.id}. Verification token: {token}" )
from db.mongo import MongoSession, MongoSessionRegular from fastapi_users import FastAPIUsers from fastapi_users.db import MongoDBUserDatabase from fastapi_users.password import get_password_hash from model.user import User, UserCreate, UserDB, UserUpdate from fastapi import APIRouter, Depends, HTTPException from api.config import jwt_authentication from model.user import User router2 = APIRouter() # Database for users mongo_db_users = MongoSession(collection="users") mongo_db_users_reg = MongoSessionRegular(collection="users") user_db = MongoDBUserDatabase(UserDB, mongo_db_users.collection) # User Management fastapi_users = FastAPIUsers( user_db, [jwt_authentication], User, UserCreate, UserUpdate, UserDB, ) @router2.post("/logout") async def logout_user(user: User = Depends(fastapi_users.get_current_active_user)): result = mongo_db_users_reg.logout_active_user(user) return result
from fastapi_users import FastAPIUsers from fastapi_users.db import MongoDBUserDatabase from app.auth.Users import UserDB, User, UserCreate, UserUpdate from app.settings.auth import JWT_AUTHENTICATION from app.settings.database import users_collections fastapi_users = FastAPIUsers(MongoDBUserDatabase(UserDB, users_collections), [JWT_AUTHENTICATION], User, UserCreate,UserUpdate, UserDB)