Files
nanocode/personal-blog/backend/sso_client.py
T
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

23 lines
752 B
Python

"""SSO Cookie 本地验签 —— 与 SSO 中心共享 SECRET_KEY"""
from fastapi import Request, HTTPException
from jose import jwt, JWTError
# 必须与 SSO 中心 sso_config.py 完全一致
SECRET_KEY = "your-secret-key-change-in-production"
ALGORITHM = "HS256"
def get_current_user_from_cookie(request: Request) -> dict:
"""从请求 Cookie 中读取 access_token,本地验签后返回用户信息"""
token = request.cookies.get("access_token")
if not token:
return None
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
username: str = payload.get("sub")
if not username:
return None
return {"username": username}
except JWTError:
return None