Spaces:
Running
Running
| from fastapi.security.oauth2 import OAuth2PasswordRequestForm | |
| from fastapi import APIRouter, Depends, HTTPException, status | |
| from sqlalchemy.orm import Session | |
| from app.schemas import Token | |
| from app import utils | |
| from app.database import get_db | |
| from app.models import User | |
| from app.oauth2 import Create_Access_Token | |
| router = APIRouter(tags=["Authentication"]) | |
| def login(user_credentials: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)): | |
| user=db.query(User).filter(User.email == user_credentials.username).first() | |
| if not user: | |
| raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,detail="Invalid Credentials") | |
| if not utils.verify(user_credentials.password,user.password): | |
| raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,detail="Invalid Credentials") | |
| access_token=Create_Access_Token(data={"id": user.id}) | |
| return { | |
| "access_token": access_token, | |
| "token_type": "bearer" | |
| } | |