Spaces:
Sleeping
Sleeping
File size: 825 Bytes
cf02b2b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import jwt
from fastapi import HTTPException, status, Header
from jwt import PyJWTError
from dotenv import load_dotenv
import os
load_dotenv()
SUPABASE_JWT_SECRET = os.getenv("SUPABASE_JWT_SECRET")
def verify_token(token: str):
try:
payload = jwt.decode(token, SUPABASE_JWT_SECRET, algorithms=["HS256"], audience="authenticated")
return payload
except PyJWTError:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid authentication credentials",
)
def get_current_user(authorization: str = Header(...)):
if not authorization.startswith("Bearer "):
raise HTTPException(status_code=401, detail="Invalid Authorization header")
token = authorization.split(" ")[1]
payload = verify_token(token)
return payload |