Skip to main content

AIプロンプト

AIを使ってAuth0を統合しますか? このプロンプトをCursor、Windsurf、Copilot、Claude Code、またはお好みのAI搭載IDEに追加して、開発を加速させましょう。
前提条件: 開始する前に、以下がインストールされていることを確認してください。
  • Python 3.9 以降 (推奨: 3.11 以上)
  • pip 21+ または Poetry 1.2+
  • OpenSSL - セッションシークレットの生成に必要
FastAPI のバージョン互換性: このクイックスタートでは FastAPI 0.115.11+Pydantic 2.12.5+ が必要です。

はじめる

このクイックスタートでは、Python FastAPI Web アプリケーションに Auth0 の認証を追加する方法を紹介します。Auth0 FastAPI SDK を使用して、ログイン、ログアウト、ユーザープロファイルの機能を備えた安全な Web アプリケーションを構築します。
1

新しいプロジェクトを作成する

プロジェクト用の新しいディレクトリを作成し、仮想環境をセットアップします:
仮想環境を作成し、有効化します:
2

Auth0 FastAPI SDKをインストールする

3

Auth0 App をセットアップする

次に、Auth0 テナントで新しいアプリを作成し、プロジェクトに環境変数を追加します。CLIコマンドを実行して Auth0 App を自動的にセットアップする方法と、Auth0 Dashboardから手動で行う方法のどちらかを選択できます。
Auth0 App を作成して .env ファイルを生成するには、プロジェクトのルートディレクトリで次のシェルコマンドを実行します。
このコマンドは次の処理を行います:
  1. 認証済みかどうかを確認し (必要に応じてログインを求めます)
  2. http://localhost:3000 用に設定された Auth0 Regular Web Application を作成します
  3. AUTH0_DOMAINAUTH0_CLIENT_IDAUTH0_CLIENT_SECRETSESSION_SECRETAPP_BASE_URL を含む .env ファイルを生成します
4

Auth0 FastAPI SDK を設定する

プロジェクトのルートディレクトリに main.py ファイルを作成し、次のコードを追加してください。
main.py
SESSION_SECRET はセッションクッキーの暗号化に使用されるため、暗号学的に安全である必要があります。十分に強力なシークレット (最低 32 バイト) がないと、アプリケーションのセッションが侵害されるおそれがあります。openssl rand -hex 64 を使用して安全なシークレットを生成し、バージョン管理にコミットしないでください。SessionMiddleware は、SDK を使用する前に追加する必要があります。これがないと、FastAPI はクッキーの読み取りや設定ができず、すべての認証の試行がエラー表示なしに失敗します。本番環境での HTTPS は、安全なクッキー (secure=True) に必須です。HTTPS でない場合、セッションクッキーはブラウザーから送信されず、ユーザーはリクエストのたびに繰り返しログアウトされます。
5

ルートを作成し、ユーザープロファイルを表示する

次のルートをmain.pyファイルに追加して、ホームページと保護されたプロファイルページを作成します。
main.py
これにより以下が作成されます:
  • ログアウト時にはログインボタン、ログイン時にはユーザーのプロファイルを表示するホームページ (/)
  • JSON 形式でユーザーデータを返し、認証が必要な保護された API エンドポイント (/profile)
  • 洗練されたユーザー体験を実現するためのスタイル一式
6

アプリを起動する

または、main.pyif __name__ == "__main__" ブロックを追加している場合は:
チェックポイントこれで、localhost 上で Auth0 Login Page が完全に動作しているはずです。

高度な使い方

ロールベースのアクセス制御向けのカスタム FastAPI 依存関係を作成します。
API 用のアクセストークンをリクエストするように SDK を設定し、下流の呼び出しで使用します。
暗号化された cookie の代わりに Redis にセッションを保存して、アプリケーションをスケールしやすくします。
ステートフルセッションの利点:
  • cookie サイズの制限なし - セッションデータを容量を気にせず保存可能
  • 即時に無効化可能 - サーバー側でセッションを削除
  • Backchannel Logout をサポート - Auth0 からの logout イベントを処理
  • 分散システムに適している - 複数サーバー間でセッションを共有

トラブルシューティング

問題: 「Log In」をクリックすると、Auth0 に「Callback URL mismatch」というエラーが表示されます原因: コールバック URL が Auth0 アプリケーションの設定に登録されていません。解決策:
  1. Auth0 Dashboard → アプリケーション → あなたのアプリ → 設定 に移動します
  2. コールバック URL を Allowed Callback URLs に追加します:
  3. 本番環境では、本番用の URL も追加します:
  4. Save Changes をクリックします
: URL は、プロトコル (http/https) やポート番号も含めて完全に一致している必要があります。
問題: async 関数やイベントループに関連するエラーが発生します。原因: FastAPI は async フレームワークであり、SDK のすべてのメソッドは await する必要があります。解決策: すべてのルート関数が async になっており、SDK メソッドを適切に await していることを確認してください。
問題: ローカルではセッションが機能するのに、本番環境では機能しません。原因: 本番環境で secure cookie を使うには HTTPS が必要です。secure=True フラグがあると、暗号化されていない HTTP 接続では cookie は送信されません。解決策:
  1. HTTPS を設定 します。たとえば次の方法があります:
    • Let’s Encrypt の証明書
    • クラウドプロバイダーの SSL/TLS (AWS ALB、Cloudflare など)
    • リバースプロキシ (Nginx、Caddy、Traefik)
  2. Auth0 アプリケーションの URL を更新 して HTTPS を使用します:
  3. APP_BASE_URL が HTTPS を使用していることを確認 します:
さらに高度な機能や設定オプションについては、Auth0 FastAPI SDK documentation を参照してください。