Exemplo n.º 1
0
async def login_user(credentials: LoginCredentials,
                     response: Response) -> UserDto:
    """Verify user credentials and return user info."""
    user = await login(credentials.email, credentials.password)
    session_token = create_access_token(user.email)
    set_credential(response, session_token)
    return user
Exemplo n.º 2
0
async def google_auth_callback(request: Request) -> None:
    """Return the User authenticated by Google Strategy."""
    token = await oauth.google.authorize_access_token(request)
    user_info = await oauth.google.parse_id_token(request, token)
    user = await get_or_create_user(user_info)
    token = create_access_token(user.email, auth=True)
    url = f"{settings.WEB_HOST}/google-login?token={token}"
    return RedirectResponse(url=url)
Exemplo n.º 3
0
async def send_recovery_email(
        background_task: BackgroundTasks,
        email: str = Query(...),
) -> dict:
    """Send a email with recovery password token."""
    verification_token = create_access_token(email=email, short_duration=True)
    background_task.add_task(
        send_recovery_password_email,
        email=email,
        token=verification_token,
    )
    return responses.Msg(detail="Email sent")
Exemplo n.º 4
0
async def resend_verification_email(
        background_task: BackgroundTasks,
        email: str = Query(...),
) -> dict:
    """Resend a verification email to the current user."""
    verification_token = create_access_token(email=email, short_duration=True)
    background_task.add_task(
        send_verification_email,
        recipient_name="Guardian",
        email=email,
        token=verification_token,
    )
    return responses.Msg(detail="Email sent")
Exemplo n.º 5
0
async def register_user(user_info: SignupInfo,
                        background_task: BackgroundTasks) -> dict:
    """Register a new user."""
    user = await signup(user_info)
    verification_token = create_access_token(user.email, short_duration=True)

    background_task.add_task(
        send_verification_email,
        recipient_name=user.firstname,
        email=user.email,
        token=verification_token,
    )
    return responses.EmailMsg(detail="Email sent")
Exemplo n.º 6
0
 def _access_token(email):
     token = create_access_token(email)
     return token
Exemplo n.º 7
0
async def google_login_manager(token: str, response: Response) -> UserDto:
    """Return the User authenticated by Google Strategy and set session cookie."""
    user = await get_auth_user(token=token)
    session_token = create_access_token(user.email)
    set_credential(response, session_token)
    return await UserDto.from_tortoise_orm(user)