FastAPI安全OAuthPassword2承载和令牌管理无法正常工作

idfiyjo8  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(91)

使用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

ru9i0ody

ru9i0ody1#

OAuth2PasswordRequestForm = Depends()

取决于什么你需要传递一个验证函数

相关问题