FastAPI 有没有一种方法可以访问依赖项输出而无需调用两次?

问题描述 投票:0回答:1

我的应用程序是使用 Auth0 构建的,并遵循本指南:https://auth0.com/blog/build-and-secure-fastapi-server-with-auth0/。现在这是我的应用程序对象:

app = FastAPI(
    ...
    dependencies=[Security(auth.verify)],
)

是否可以从我的请求中检索

auth.verify
方法返回的对象?该状态似乎是空的。下面的代码抛出一个
AttributeError: 'State' object has no attribute 'user'
。我不想通过将 auth.verify 添加到请求中的显式依赖项列表中来调用 auth.verify 两次。另外,我希望在一个地方进行身份验证,而不是在顶层,然后在每个端点冗余地再次需要此信息。

@router.get("/")
async def get_user(request: Request):
    return request.state.user
fastapi auth0
1个回答
0
投票

如果相同的依赖关系出现多次,FastAPI 仍然只会调用一次。因此,只需将其添加为端点中的依赖项并照常访问即可。

© www.soinside.com 2019 - 2024. All rights reserved.