使用Python 3.9,我试图遵循FastAPI教程的安全性,但我不能设法显示authorize按钮,也不能显示路径附近的lock。
在我的代码中(出于安全目的,我不能完全显示),我做了文档中出现的所有事情:
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="users/login")
@app.post("/users/login")
async def logIn(form_data: OAuth2PasswordRequestForm = Depends()):
token = management.login(form_data.username, form_data.password)
if token == False:
raise HTTPException(status_code=400, detail="Incorrect username or password")
else:
return token
#Fake path for privacy reasons
@app.get("/fake/path")
async def read_item(token: Annotated[str, Depends(oauth2_scheme)]):
return True
然而,Swagger并不像这样出现
示例:https://i.stack.imgur.com/awxQU.png
但看起来
我的得意:https://i.stack.imgur.com/Y66Rd.png
为什么会这样?
PS:我也试过这样的async def logIn(form_data: Annotated[OAuth2PasswordRequestForm, Depends()])
,但我得到了fastapi.exceptions.FastAPIError: Invalid args for response field! Hint: check that typing.Annotated[fastapi.security.oauth2.OAuth2PasswordRequestForm, Depends(NoneType)] is a valid pydantic field type
1条答案
按热度按时间ru9i0ody1#
取决于什么你需要传递一个验证函数