25 lines
502 B
Python
25 lines
502 B
Python
"""
|
||
租户过滤依赖
|
||
|
||
从请求中提取 tenant_id,用于多租户数据隔离。
|
||
"""
|
||
|
||
from typing import Annotated
|
||
|
||
from fastapi import Header
|
||
|
||
|
||
async def get_tenant_id(
|
||
x_tenant_id: Annotated[str | None, Header(alias="X-Tenant-ID")] = None,
|
||
) -> int:
|
||
"""
|
||
从 Header X-Tenant-ID 或 JWT 解析 tenant_id。
|
||
未提供时返回默认租户 1。
|
||
"""
|
||
if x_tenant_id:
|
||
try:
|
||
return int(x_tenant_id)
|
||
except ValueError:
|
||
return 1
|
||
return 1
|