(
request: Request,
credentials: OAuth2PasswordRequestForm = Depends(),
user_manager: BaseUserManager[models.UP, models.ID] = Depends(get_user_manager),
strategy: Strategy[models.UP, models.ID] = Depends(backend.get_strategy),
)
| 47 | responses=login_responses, |
| 48 | ) |
| 49 | async def login( |
| 50 | request: Request, |
| 51 | credentials: OAuth2PasswordRequestForm = Depends(), |
| 52 | user_manager: BaseUserManager[models.UP, models.ID] = Depends(get_user_manager), |
| 53 | strategy: Strategy[models.UP, models.ID] = Depends(backend.get_strategy), |
| 54 | ): |
| 55 | user = await user_manager.authenticate(credentials) |
| 56 | |
| 57 | if user is None or not user.is_active: |
| 58 | raise HTTPException( |
| 59 | status_code=status.HTTP_400_BAD_REQUEST, |
| 60 | detail=ErrorCode.LOGIN_BAD_CREDENTIALS, |
| 61 | ) |
| 62 | if requires_verification and not user.is_verified: |
| 63 | raise HTTPException( |
| 64 | status_code=status.HTTP_400_BAD_REQUEST, |
| 65 | detail=ErrorCode.LOGIN_USER_NOT_VERIFIED, |
| 66 | ) |
| 67 | response = await backend.login(strategy, user) |
| 68 | await user_manager.on_after_login(user, request, response) |
| 69 | return response |
| 70 | |
| 71 | logout_responses: OpenAPIResponseType = { |
| 72 | **{ |
nothing calls this directly
no test coverage detected