iBrokeTheCode's picture
chore: Add API service files
6ab520d
raw
history blame
959 Bytes
from app import db
from app.user import hashing
from app.user.models import User
from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordRequestForm
from sqlalchemy.orm import Session
from .jwt import create_access_token
router = APIRouter(tags=["auth"])
@router.post("/login")
def login(
request: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(db.get_db)
):
user = db.query(User).filter(User.email == request.username).first()
if not user:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail="Invalid credentials"
)
if not hashing.verify_password(request.password, user.password):
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail="Incorrect password"
)
access_token = create_access_token(data={"sub": user.email})
return {"access_token": access_token, "token_type": "bearer"}