Spaces:
Sleeping
Sleeping
| from fastapi import Depends, HTTPException, status | |
| from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials | |
| from jose import jwt, JWTError | |
| import os | |
| security = HTTPBearer() | |
| def verify_token(credentials: HTTPAuthorizationCredentials = Depends(security)): | |
| JWT_SECRET = os.getenv("JWT_SECRET_KEY") | |
| ALGORITHM = os.getenv("ALGORITHM") | |
| token = credentials.credentials | |
| try: | |
| payload = jwt.decode(token, JWT_SECRET, algorithms=[ALGORITHM]) | |
| return payload | |
| except JWTError as e: | |
| raise HTTPException( | |
| status_code=status.HTTP_401_UNAUTHORIZED, | |
| detail="Invalid or expired token", | |
| headers={"WWW-Authenticate": "Bearer"}, | |
| ) | |