diff --git a/mealie/routes/auth/auth.py b/mealie/routes/auth/auth.py index 5ac36b997abd..682aee622c6b 100644 --- a/mealie/routes/auth/auth.py +++ b/mealie/routes/auth/auth.py @@ -1,12 +1,12 @@ from datetime import timedelta -from fastapi import APIRouter, Depends, Form, status +from fastapi import APIRouter, Depends, Form, Request, status from fastapi.exceptions import HTTPException from fastapi.security import OAuth2PasswordRequestForm from pydantic import BaseModel from sqlalchemy.orm.session import Session -from mealie.core import security +from mealie.core import root_logger, security from mealie.core.dependencies import get_current_user from mealie.core.security import authenticate_user from mealie.core.security.security import UserLockedOut @@ -16,6 +16,7 @@ from mealie.schema.user import PrivateUser public_router = APIRouter(tags=["Users: Authentication"]) user_router = UserAPIRouter(tags=["Users: Authentication"]) +logger = root_logger.get_logger("auth") class CustomOAuth2Form(OAuth2PasswordRequestForm): @@ -48,16 +49,18 @@ class MealieAuthToken(BaseModel): @public_router.post("/token") -def get_token(data: CustomOAuth2Form = Depends(), session: Session = Depends(generate_session)): +def get_token(request: Request, data: CustomOAuth2Form = Depends(), session: Session = Depends(generate_session)): email = data.username password = data.password try: user = authenticate_user(session, email, password) # type: ignore except UserLockedOut as e: + logger.error(f"User is locked out from {request.client.host}") raise HTTPException(status_code=status.HTTP_423_LOCKED, detail="User is locked out") from e if not user: + logger.error(f"Incorrect username or password from {request.client.host}") raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, )