fix: use LoginRequest schema instead of query params for login endpoint

This commit is contained in:
Ricel Leite 2026-02-18 23:44:58 -03:00
parent 4e44c8f7be
commit b1adf39682
2 changed files with 8 additions and 5 deletions

View File

@ -7,7 +7,7 @@ from app.core.database import get_db
from app.core.security import verify_password, get_password_hash, create_access_token, create_refresh_token, decode_token from app.core.security import verify_password, get_password_hash, create_access_token, create_refresh_token, decode_token
from app.models.user import User from app.models.user import User
from app.models.organization import Organization, OrganizationMember, MemberRole from app.models.organization import Organization, OrganizationMember, MemberRole
from app.schemas.user import UserCreate, UserRead, Token from app.schemas.user import UserCreate, UserRead, Token, LoginRequest
from app.services.audit import AuditService from app.services.audit import AuditService
import re import re
@ -86,16 +86,15 @@ async def register(
@router.post("/login", response_model=Token) @router.post("/login", response_model=Token)
async def login( async def login(
email: str, credentials: LoginRequest,
password: str,
request: Request, request: Request,
db: AsyncSession = Depends(get_db) db: AsyncSession = Depends(get_db)
): ):
"""Login and get access token.""" """Login and get access token."""
result = await db.execute(select(User).where(User.email == email)) result = await db.execute(select(User).where(User.email == credentials.email))
user = result.scalar_one_or_none() user = result.scalar_one_or_none()
if not user or not verify_password(password, user.hashed_password): if not user or not verify_password(credentials.password, user.hashed_password):
raise HTTPException( raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED, status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid email or password" detail="Invalid email or password"

View File

@ -10,6 +10,10 @@ class UserBase(BaseModel):
class UserCreate(UserBase): class UserCreate(UserBase):
password: str password: str
class LoginRequest(BaseModel):
email: EmailStr
password: str
class UserUpdate(BaseModel): class UserUpdate(BaseModel):
email: Optional[EmailStr] = None email: Optional[EmailStr] = None
full_name: Optional[str] = None full_name: Optional[str] = None