Spaces:
Runtime error
Runtime error
| from fastapi import Request, HTTPException, status, Depends | |
| from sqlalchemy.orm import Session | |
| from .utils import jwt_handler | |
| from .database import get_db | |
| from . import models | |
| def get_current_user(request: Request, db: Session = Depends(get_db)): | |
| token = request.cookies.get("access_token") | |
| if not token: | |
| raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated") | |
| # Remove "Bearer " prefix if present | |
| if token.startswith("Bearer "): | |
| token = token.split(" ")[1] | |
| payload = jwt_handler.verify_token(token) | |
| if not payload: | |
| raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid or expired token") | |
| username = payload.get("sub") | |
| user = db.query(models.User).filter(models.User.username == username).first() | |
| if not user: | |
| raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="User not found") | |
| return user | |