fastapi所有请求前加权限校验
时间: 2023-09-04 19:13:29 浏览: 189
FastAPI 中可以使用装饰器 `Depends` 来实现权限校验,例如:
```
from fastapi import FastAPI, Depends
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
# 定义权限校验函数
def check_token(token: str = Depends(oauth2_scheme)):
if token != "mysecrettoken":
raise HTTPException(status_code=401, detail="Invalid authorization token")
return True
# 使用装饰器对路由进行权限校验
@app.get("/items/")
async def read_items(token_valid: bool = Depends(check_token)):
return {"items": ["foo", "bar"]}
```
以上代码中,`check_token` 函数会对 OAuth2 token 进行校验,若校验成功则返回 True。`read_items` 路由使用 `Depends` 装饰器依赖 `check_token` 函数来进行权限校验。若 `check_token` 返回 False,则 FastAPI 会返回 401 Unauthorized 状态码。
阅读全文