如何在fastapi中定义具有多个api密钥的自定义安全性?

如何在fastapi中定义具有多个api密钥的自定义安全性?,fastapi,Fastapi,这是我的计划,但不能生成到OpenAPI文档的身份验证部分 class HMACModel(BaseModel): api_key: APIKey = APIKey(**{"in": APIKeyIn.header}, name='Api-Key') signature: APIKey = APIKey(**{"in": APIKeyIn.header}, name='Signature') class HMACAuth(APIKeyB

这是我的计划,但不能生成到OpenAPI文档的身份验证部分

class HMACModel(BaseModel):
    api_key: APIKey = APIKey(**{"in": APIKeyIn.header}, name='Api-Key')
    signature: APIKey = APIKey(**{"in": APIKeyIn.header}, name='Signature')


class HMACAuth(APIKeyBase):
    model = HMACModel()
    scheme_name = 'HMACAuth'

    async def __call__(self, request: Request):
        api_key = request.headers.get('Api-Key')
        signature = request.headers.get('Signature')
        print(f's:{signature}, k:{api_key}')
        do_some_check()
        return api_key

@app.get('/')
async def test_api(req: ReqModel, api_key=Depends(HMACAuth())):
        pass
当OpenAPI对象初始化并带有分析输出
OpenAPI(**output)
时,似乎会忽略自定义模型(输出中有安全性shema,但OpenAPI对象中有missd)

(参考代码:https://github.com/tiangolo/fastapi/blob/d60dd1b60e0acd0afcd5688e5759f450b6e7340c/fastapi/openapi/utils.py#L372)