43 lines
1.0 KiB
Python
Raw Normal View History

from datetime import datetime
from typing import Annotated
from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
from src.neo_neo_todo.models.member import Member
router = APIRouter(
prefix="/members",
tags=["members"],
)
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
def fake_decode_token(_):
return Member(
id=1,
email="fake@token.com",
password_hash="asdfasdffqwerqwe!@#09098@%)(*)",
created=datetime.now(),
email_verified=None,
)
async def get_current_member(token: Annotated[str, Depends(oauth2_scheme)]):
member = fake_decode_token(token)
if not member:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid authentication credentials",
headers={"WWW-Authenticate": "Bearer"},
)
return member
@router.get("/me")
async def read_users_me(current_user: Annotated[Member, Depends(get_current_member)]):
return current_user