feat: Update endpoint login

This commit is contained in:
Backend IM Bot 2025-03-11 11:09:26 +00:00
parent b92e35db55
commit 90f5d1bacb

View File

@ -1,7 +1,28 @@
from fastapi import APIRouter from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordRequestForm
from sqlalchemy.orm import Session
from typing import Optional
from models import User
from database import get_db
from auth import authenticate_user, create_access_token
router = APIRouter() router = APIRouter()
@router.post("/login") @router.post("/login")
async def login(username: str, password: str): async def login(
return {"message": "User logged in successfully", "username": username} form_data: OAuth2PasswordRequestForm = Depends(),
db: Session = Depends(get_db),
):
"""
Authenticate user and return access token
"""
user = authenticate_user(db, form_data.username, form_data.password)
if not user:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Incorrect username or password",
headers={"WWW-Authenticate": "Bearer"},
)
access_token = create_access_token(data={"sub": user.username})
return {"access_token": access_token, "token_type": "bearer"}