跳转至

auth

feishu.gateway.auth

ServiceAuthError

Bases: Exception

内部网关请求缺少有效服务密钥时抛出。

源代码位于: feishu/gateway/auth.py
Python
class ServiceAuthError(Exception):
    r"""内部网关请求缺少有效服务密钥时抛出。"""

require_service

Python
require_service(request: Request, service_keys: Mapping[str, str]) -> str

校验 Authorization: Bearer <key> 并返回对应的服务名。

源代码位于: feishu/gateway/auth.py
Python
def require_service(request: Request, service_keys: Mapping[str, str]) -> str:
    r"""校验 ``Authorization: Bearer <key>`` 并返回对应的服务名。"""
    header = request.headers.get("authorization", "")
    prefix = "Bearer "
    if not header.startswith(prefix):
        raise ServiceAuthError("missing bearer token")
    token = header[len(prefix) :].strip()
    if not token:
        raise ServiceAuthError("missing bearer token")

    matched_service: str | None = None
    for expected_key, service_name in service_keys.items():
        if hmac.compare_digest(token, expected_key):
            matched_service = service_name

    if matched_service is None:
        raise ServiceAuthError("invalid bearer token")
    request.state.service = matched_service
    return matched_service