Как получить данные пользователя из БД FastAPI

Мне нужно после логина пользователя, получить информацию о нем из БД (ну, допустим, просто почту вывести) Делаю через fastapi-users JWT. Там есть такая функция:

async def on_after_login(
    self, user: User,
    request: Optional[Request] = None,
):
    print(f"User {user.id} logged in.")

Просто её копирую, но получаю ошибку:

"TypeError: UserManager.on_after_login() takes 2 positional argument but 4 were given"

Что не так?


Ответы (1 шт):

Автор решения: Maksim Alekseev

Что бы воспользоваться методом on_after_login в классе UserManager нужно данный метод перегрузить.

Использовал версию

fastapi-users[sqlalchemy]==11.0.0

И в моем случае это выглядело следующим образом:

class UserManager(UUIDIDMixin, BaseUserManager[User, uuid.UUID]):
    reset_password_token_secret = SECRET
    verification_token_secret = SECRET

    async def on_after_login(
        self,
        user: User,
        request: Optional[Request] = None,
        response: Optional[Response] = None,
    ) -> None:
        print(f'User {user.email} is logged in')
→ Ссылка