如何在fastapi中定义具有多个api密钥的自定义安全性?
这是我的计划,但不能生成到OpenAPI文档的身份验证部分如何在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
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)