Spaces:
Sleeping
Sleeping
| 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 |