admin_dashboard_backend / app /get_current_users.py
vip11017's picture
Added token expiration endpoint
ae4fc51
from fastapi import Depends, HTTPException
from fastapi.security import OAuth2PasswordBearer
from app.auth import decode_access_token
from app.config import settings
from motor.motor_asyncio import AsyncIOMotorClient
from jose import ExpiredSignatureError
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/login")
client = AsyncIOMotorClient(settings.mongo_uri)
db = client[settings.mongo_db_name]
users = db["Users"]
async def get_current_user(token: str = Depends(oauth2_scheme)):
try:
payload = decode_access_token(token)
if not payload:
raise HTTPException(status_code=401, detail="Invalid Token")
except ExpiredSignatureError:
raise HTTPException(status_code=401, detail="Token Expired")
user = await users.find_one({"_id": payload["user_id"]})
if not user:
raise HTTPException(status_code=404, detail="User Not Found")
return user