我的应用程序是使用 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 仍然只会调用一次。因此,只需将其添加为端点中的依赖项并照常访问即可。