ホームページ >バックエンド開発 >Python チュートリアル >FastAPI でのサードパーティのログイン認証に OAuth2 を使用する方法

FastAPI でのサードパーティのログイン認証に OAuth2 を使用する方法

WBOY
WBOYオリジナル
2023-08-01 20:41:092025ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。