FastAPI 为所有端点创建身份验证

FastAPI create auth for all endpoints

我按照此文档设置了单个用户: https://fastapi.tiangolo.com/advanced/security/http-basic-auth/

但我只收到 user/pass 的提示,即一个终点“/users/me”。

如何确保所有端点都经过验证?

您可以通过在创建 FastAPI 应用程序时直接提供参数(即全局依赖项)来为任何端点解析一组需要解析的依赖项来配置 FastAPI:

security = HTTPBasic()

app = FastAPI(dependencies=[Depends(security)])

如果您希望某些端点经过身份验证而某些端点未经身份验证,您可以创建单独的 APIRouter 实例,然后将所需的依赖项分配给需要身份验证的实例:

unauthenticated_router = APIRouter()
authenticated_router = APIRouter(dependencies=[Depends(security)])

.. 然后在每个路由器下包含其他路由器(使用 .include_router)或注册端点,就像您对 app 对象所做的那样 - 但是使用您的两个路由器。