Spaces:
Sleeping
Sleeping
File size: 762 Bytes
06671aa | 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 26 | from __future__ import annotations
from typing import Optional
from fastapi import Header, HTTPException, Request
from pydantic import BaseModel
class UserSession(BaseModel):
user_id: str
email: str
username: str
async def current_user(
request: Request,
x_user_id: Optional[str] = Header(None, alias="x-user-id"),
x_user_email: Optional[str] = Header(None, alias="x-user-email"),
) -> UserSession:
user_id = x_user_id or request.headers.get("x-user-id")
email = x_user_email or request.headers.get("x-user-email", "")
if not user_id:
raise HTTPException(status_code=401, detail="Missing x-user-id header.")
username = email or user_id
return UserSession(user_id=user_id, email=email, username=username)
|