Esempio n. 1
0
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
Esempio n. 2
0
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))
Esempio n. 3
0
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"])
Esempio n. 4
0
    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}"
    )
Esempio n. 5
0

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,
Esempio n. 6
0
async def get_user_db():
    yield MongoDBUserDatabase(UserDB, collection)
Esempio n. 7
0
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)
Esempio n. 8
0
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"])
Esempio n. 9
0
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}"
    )
Esempio n. 10
0
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
Esempio n. 11
0
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)