from fastapi import APIRouter, Depends, HTTPException from fastapi.security import OAuth2PasswordRequestForm from sqlalchemy.orm import Session from database import get_db import models from auth import verify_password, create_access_token, get_current_user router = APIRouter(prefix="/api/auth", tags=["auth"]) @router.post("/login") def login(form: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)): user = db.query(models.User).filter( models.User.username == form.username, models.User.is_active == True ).first() if not user or not verify_password(form.password, user.password_hash): raise HTTPException(status_code=401, detail="아이디 또는 비밀번호가 올바르지 않습니다.") token = create_access_token({"sub": str(user.id)}) return { "access_token": token, "token_type": "bearer", "role": user.role, "name": user.name, "user_id": user.id } @router.get("/me") def me(current_user: models.User = Depends(get_current_user)): return { "id": current_user.id, "username": current_user.username, "role": current_user.role, "name": current_user.name, "company": current_user.company, }