File size: 706 Bytes
083d486 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
from fastapi import HTTPException, Header
import jwt
from dotenv import load_dotenv
import os
load_dotenv()
def get_secret_key():
return os.getenv("SECRET_KEY")
async def verify_token(authorization: str = Header(...)):
try:
token_type, token = authorization.split()
if token_type.lower() != "bearer":
raise HTTPException(status_code=401, detail="Invalid token type")
return jwt.decode(token, get_secret_key(), algorithms=["HS256"])
except jwt.ExpiredSignatureError:
raise HTTPException(status_code=401, detail="Token has expired")
except (jwt.InvalidTokenError, IndexError):
raise HTTPException(status_code=401, detail="Invalid token") |