|
- from fastapi import APIRouter, Depends
- from fastapi.security import OAuth2PasswordRequestForm
- from fastapi_login.exceptions import InvalidCredentialsException
-
-
- # from db import get_session
- #from ..core.actions import get_user_by_name
- from core.actions import get_user_by_name
- from models.auth import Token
- from core.security import verify_password, manager
-
- router = APIRouter(
- prefix="/auth"
- )
-
-
- @router.post('/login', response_model=Token)
- def login(form_data: OAuth2PasswordRequestForm = Depends()) -> Token:
- """
- Logs in the user provided by form_data.username and form_data.password
- """
- print (form_data.password)
- user = get_user_by_name(form_data.username)
-
- print (user)
-
- if user is None:
- raise InvalidCredentialsException
-
- if not verify_password(form_data.password, user.password):
- raise InvalidCredentialsException
-
- if user.is_admin:
- token = manager.create_access_token(data={'sub': user.username},scopes=["required", "is_admin"])
- else:
- token = manager.create_access_token(data={'sub': user.username})
- return Token(access_token=token, token_type='bearer')
|