Open3

FastAPIでOAuth2

3w36zj63w36zj6

main.pyを作成。

main.app
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer

app = FastAPI()

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")


@app.get("/items/")
async def read_items(token: str = Depends(oauth2_scheme)):
    return {"token": token}

以下のコマンドを実行し、http://127.0.0.1:8000/docsにAuthorizeと鍵アイコンが増えていることを確認する。

uvicorn main:app --reload
3w36zj63w36zj6

以下のライブラリを導入する。

Python-Multipart

OAuth2でのフォームデータの送信用。

pip install python-multipart

https://github.com/andrew-d/python-multipart

Python-JOSE

JWTトークンの生成と検証用。

pip install python-jose[cryptography]

https://github.com/mpdavis/python-jose

https://github.com/pyca/cryptography

PassLib

パスワードハッシュの処理用。アルゴリズムはBcryptを指定。

pip install passlib[bcrypt]

https://foss.heptapod.net/python-libs/passlib