Skip to content

Commit fb69679

Browse files
committed
fix: OAuth2 Flow
1 parent 286c193 commit fb69679

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

api/src/users/routes.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
from typing import Annotated
2+
13
from fastapi import APIRouter, Depends, status
4+
from fastapi.security import OAuth2PasswordRequestForm
25
from sqlalchemy.ext.asyncio import AsyncSession
36

47
from api.core.database import get_session
58
from api.core.logging import get_logger
9+
from api.core.security import get_current_user
10+
from api.src.users.models import User
611
from api.src.users.schemas import LoginData, Token, UserCreate, UserResponse
712
from api.src.users.service import UserService
813

@@ -24,8 +29,16 @@ async def register(
2429

2530
@router.post("/login", response_model=Token)
2631
async def login(
27-
login_data: LoginData, session: AsyncSession = Depends(get_session)
32+
form_data: Annotated[OAuth2PasswordRequestForm, Depends()],
33+
session: AsyncSession = Depends(get_session),
2834
) -> Token:
2935
"""Authenticate user and return token."""
36+
login_data = LoginData(email=form_data.username, password=form_data.password)
3037
logger.debug(f"Login attempt: {login_data.email}")
3138
return await UserService(session).authenticate(login_data)
39+
40+
41+
@router.get("/me", response_model=UserResponse)
42+
async def get_me(user: User = Depends(get_current_user)) -> UserResponse:
43+
"""Get current authenticated user."""
44+
return user

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ dependencies = [
2424
"isort>=5.13.0",
2525
"pre-commit>=4.0.1",
2626
"autoflake>=2.3.1",
27+
"python-multipart>=0.0.20",
2728
]
2829

2930
[tool.pytest.ini_options]

uv.lock

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)