feat: Update endpoint login

This commit is contained in:
Backend IM Bot 2025-03-12 17:52:32 +00:00
parent b92e35db55
commit 645ae33fa6

View File

@ -1,7 +1,23 @@
from fastapi import APIRouter
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm import Session
from typing import Optional
from models import User
from schemas import UserLogin, Token
from utils import get_db, authenticate_user, create_access_token
router = APIRouter()
@router.post("/login")
async def login(username: str, password: str):
return {"message": "User logged in successfully", "username": username}
@router.post("/login", response_model=Token)
async def login(user_credentials: UserLogin, db: Session = Depends(get_db)):
"""
Authenticate user and return access token
"""
user = authenticate_user(db, user_credentials.username, user_credentials.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"}