メインコンテンツへスキップ

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アプリを設定する

次に、Auth0テナントで新しいアプリを作成し、プロジェクトに環境変数を追加します。CLIコマンドを実行して自動的に行う方法と、Dashboardから手動で行う方法のいずれかを選択できます。
Auth0 アプリを作成して .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__" ブロックを追加した場合は、次のように実行します。
チェックポイントこれで、Auth0 のログインページが localhost で正常に動作するようになっているはずです。

高度な使用方法

ロールベースアクセス制御用のカスタム FastAPI 依存関係を作成します。
API 用のアクセストークンをリクエストするよう SDK を設定し、後続の呼び出しで使用します。
暗号化されたクッキーではなく Redis にセッションを保存して、アプリケーションをスケールさせます。
ステートフルなセッションの利点:
  • クッキーサイズの制限なし - 無制限のセッションデータを保存可能
  • 即時に無効化可能 - サーバー側でセッションを削除
  • バックチャネルログアウトをサポート - Auth0 からのログアウトイベントを処理
  • 分散システムに適している - 複数のサーバー間でセッションを共有

トラブルシューティング

問題: 「Log In」をクリックすると、Auth0 に「Callback URL mismatch」というエラーが表示されます原因: callback URL が Auth0 アプリケーションの設定に登録されていません。解決策:
  1. Auth0 Dashboard → Applications → Your App → Settings に移動します
  2. callback 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 を参照してください。