fixed token problem

This commit is contained in:
bdrtr 2025-05-05 14:31:25 +03:00
parent 5f32db24bf
commit 7281477269
3 changed files with 56 additions and 11 deletions

View file

@ -1,6 +1,6 @@
from fastapi import APIRouter, Depends, HTTPException
from .models import UserInDb, User, Role, Token
from .models import get_current_active_user, authenticate_user, create_access_token , fake_db
from fastapi import APIRouter, Depends, HTTPException, status
from .models import UserInDb, User, Role, Token, UserPublic
from .models import get_current_active_user, authenticate_user, create_access_token , fake_db, get_current_user
from datetime import timedelta, datetime, timezone
from ..config import ACCESS_TOKEN_EXPIRE_MINUTES
from typing import Annotated, Optional
@ -17,11 +17,11 @@ router = APIRouter(
@router.get("/me")
async def read_users_me(
current_user: Annotated[User, Depends(get_current_active_user)],
):
) -> UserPublic:
return current_user
def ADMIN(current_user: Annotated[UserInDb, Depends(get_current_active_user)]):
def ADMIN(current_user: Annotated[UserInDb, Depends(get_current_user)]):
if current_user.role != Role.admin:
raise HTTPException(status_code=400, detail="You are not admin")
return current_user
@ -39,7 +39,7 @@ async def login_for_access_token(
user = authenticate_user(fake_db, form_data.username, form_data.password)
if not user:
raise HTTPException(
status_code=400,
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Incorrect username or password",
headers={"WWW-Authenticate": "Bearer"},
)
@ -47,4 +47,4 @@ async def login_for_access_token(
access_token = create_access_token(
data={"sub": user['username'], "role": user['role'], 'status': user['status']}, expires_delta=access_token_expires
)
return {"access_token": access_token, "token_type": "bearer"}
return Token(access_token=access_token, token_type="bearer")