Files
dsProject/dsAiTeachingModel/auth/dependencies.py
2025-08-14 15:45:08 +08:00

29 lines
1.1 KiB
Python

# dependencies.py
from fastapi import Request, HTTPException, status, Header
from utils.JwtUtil import *
async def get_current_user(token: str = Header(None, description="Authorization token")):
if token is None:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="未提供令牌,请登录后使用!",
headers={"WWW-Authenticate": "Bearer"},
)
token = token.split(" ")[1] if token.startswith("Bearer ") else token
payload = verify_token(token)
if payload is None:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="无法验证凭据,请登录后使用!",
headers={"WWW-Authenticate": "Bearer"},
)
user_id = payload.get("user_id")
identity_id = payload.get("identity_id")
if user_id is None or identity_id is None:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="无法验证用户,请重新登录后使用!",
headers={"WWW-Authenticate": "Bearer"},
)
return user_id