Как получить данные пользователя из БД 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')