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
对象所做的那样 - 但是使用您的两个路由器。
我按照此文档设置了单个用户: 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
对象所做的那样 - 但是使用您的两个路由器。