はじめに
ポートフォリオを作成しており、ようやく開発工程に入ろうとしています!!
悩んでいたバックエンドはpythonのフレームワークであるFastAPIに選定しました。
選定理由は、
- 単純にpythonで開発をしてみたかったから。
- flaskより高速なAPIフレームワークだから。
です!
今回は、認証機能について少し学習したのでアウトプットがてら少し書こうかと思います。
仕組み
FastAPIではOAuth2というものを使用して認証機能を実装できます。
実際には、OAuth2PasswordBearerクラスをインポートし、インスタンスを作成して使用する流れになります。
↓公式のコード
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
#OAuth2PasswordBearerのインスタンスを作成
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: str = Depends(oauth2_scheme)):
return {"token": token}
read_items()の引数にあるDepends()は、依存する関数を呼ぶためにあるらしく、(ここがよく理解できませんでした。。。)
関数を呼ぶ際、ついでに呼んでおきたい関数(認証、トークン確認等)を設定できるみたいです。
今回であれば認証済みのユーザーのみが/items/にリクエストを送れるようにしたいので、
Depends内にOAuth2PasswordBearerのインスタンスを入れてますね。
最後に
基本的にはこのような仕組みで認証を実装できます。
フォームから実際にデータを送って認証する、みたいなところはまた実装する際に書こうと思います!
FastAPIには静的型付けなどもありかなりコーディングもしやすいイメージです!
ライブラリなども豊富で、これからの開発がとても楽しみになりました〜
では、また進捗があれば投稿いたします。