FastAPI でサードパーティのログイン認証に OAuth2 を使用する方法
はじめに:
Web アプリケーションでは、ユーザー ログインは一般的な機能です。ただし、より良いユーザー エクスペリエンスと便利な登録/ログイン方法を提供するために、多くのアプリケーションはサードパーティのログイン認証を統合することを選択します。 OAuth2 は、ユーザーが新しいアカウントを作成せずに既存のサードパーティ アカウントを使用してアプリケーションにログインできるようにする一般的なサードパーティのログイン認証プロトコルです。この記事では、サードパーティのログイン認証のために FastAPI フレームワークで OAuth2 を使用する方法を紹介します。
ステップ 1: 依存ライブラリをインストールする
始める前に、必要な依存ライブラリをいくつかインストールする必要があります。次のコマンドを使用してインストールします。
pip install fastapi[all] pip install oauthlib[all] pip install python-jose[cryptography]
ステップ 2: OAuth2 認証サーバーを作成する
まず、OAuth2 認証サーバーを作成する必要があります。これは、fastapi.security
ライブラリによって提供される OAuth2PasswordBearer クラスを使用して実現できます。
from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") @app.get("/items/") def read_items(token: str = Depends(oauth2_scheme)): return {"token": token}
上記のコードでは、FastAPI アプリケーションを作成し、認証に /items/
ルート上の OAuth2PasswordBearer
クラスを使用します。 OAuth2PasswordBearer
クラスには、アクセス トークンの取得に使用されるエンドポイントを指定する tokenUrl
パラメーターが必要です。
ステップ 3: サードパーティのログイン サービス プロバイダーを登録する
サードパーティのログイン認証を使用する前に、まず使用する OAuth2 サービス プロバイダーにアプリケーションを登録し、対応する顧客クライアントを取得する必要があります。 IDとクライアントシークレット。これらの資格情報は、後続の認証プロセスで使用されます。
ステップ 4: サードパーティのログイン認証プロセスを実装する
次に、サードパーティのログイン認証プロセスを実装するコードを記述する必要があります。以下は簡単な例です。
from fastapi import FastAPI from fastapi.security import OAuth2AuthorizationCodeBearer app = FastAPI() oauth2_scheme = OAuth2AuthorizationCodeBearer("/login/callback") @app.get("/login") def login(): authorize_url = "https://oauth2.provider.com/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=http://yourapp.com/login/callback" return {"authorize_url": authorize_url} @app.get("/login/callback") def login_callback(code: str): # exchange code for access token token = "access_token" return {"token": token}
上記のコードでは、まず /login
ルートを定義します。これは、サードパーティのログイン認証のためにフロントエンド ユーザーに URL を提供します。 。ユーザーがこの URL にアクセスすると、OAuth2 プロバイダーの認証ページにリダイレクトされます。認証ページでは、ユーザーはアプリが自分のアカウントにアクセスして認証コードを受け取ることを認証するかどうかを選択するよう求められます。
ユーザーが認可されると、/login/callback
ルートにリダイレクトされ、認可コードがパラメータとしてルートに渡されます。次に、認証コードを使用してアクセス トークンを取得する必要があります。実際のアプリケーションでは、このプロセスには OAuth2 サービス プロバイダーの API との対話が必要です。
最後に、アクセス トークンをフロントエンド ユーザーに返し、それを後続のリクエストの認証に使用できます。
概要:
この記事では、サードパーティのログイン認証のために FastAPI フレームワークで OAuth2 を使用する方法を紹介します。 fastapi.security
ライブラリによって提供される OAuth2PasswordBearer クラスと OAuth2AuthorizationCodeBearer クラスを使用すると、認可サーバーとサードパーティのログイン認可フローを簡単に実装できます。同時に、OAuth2 サービス プロバイダーを登録し、対応するクライアント ID とクライアント キーを取得する必要もあります。この記事がサードパーティのログイン認証機能の実装に役立つことを願っています。
以上がFastAPI でのサードパーティのログイン認証に OAuth2 を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。