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

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:
次に、AI アシスタントに次のように依頼します。
AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、express-openid-connect のインストール、ミドルウェアの設定、ルートのセットアップを自動的に行います。agent skills の完全なドキュメント →
前提条件: 始める前に、次のものがインストールされていることを確認してください。
  • Node.js 18 LTS 以降
  • npm 10 以降、または yarn 1.22 以降
  • jq - Auth0 CLI のセットアップに必要です (省略可)
Express のバージョン互換性: このクイックスタートは Express 4.17.0 以降に対応しています。

はじめに

このガイドでは、express-openid-connect SDK を使用して、Express.js の Web アプリケーションに Auth0 を統合し、認証を追加して、ユーザープロファイル情報を表示する方法を紹介します。

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

Express アプリケーション用の新しいディレクトリを作成し、Node.js プロジェクトを初期化します。
プロジェクトの構成を作成します。

2. Auth0 Express SDK をインストールする

環境変数を管理するために、Express および dotenv とあわせて express-openid-connect をインストールします。
開発時は、ファイルの変更に応じてサーバーを自動的に再起動するために、nodemon をインストールします。
package.json を更新して、起動スクリプトを追加します。 📁 package.json

3. Auth0 App を設定する

次に、Auth0 テナントに新しいアプリケーションを作成し、環境変数をプロジェクトに追加します。 これは、CLI コマンドを実行して自動的に行うことも、Dashboard で手動で行うこともできます。
次のシェルコマンドをプロジェクトのルートディレクトリで実行し、Auth0 アプリケーションを作成して .env ファイルを生成します。macOS / Linux:
Windows (PowerShell):
Auth0 CLI をまだインストールしていない場合は、次を実行します。
その後、auth0 login で認証します。

4. ミドルウェアを設定する

Auth0 ミドルウェアを Express アプリケーションに追加します。auth() ミドルウェアはセッションを管理し、/login/logout/callback ルートを自動的に作成します。 📁 index.js
この設定で行われること:
  • authRequired: false を設定すると、認証の有無にかかわらず、デフォルトですべてのユーザーがルートにアクセスできます
  • auth0Logout: true を設定すると、ユーザーはアプリだけでなく Auth0 からもログアウトされます
  • ミドルウェアにより、/login/logout/callback のルートが自動的に自動的に追加されます
  • ユーザーセッションは暗号化された Cookie に保存されます

5. ログイン、ログアウト、ユーザープロファイル用のルートを作成する

次に、ログイン/ログアウトのリンクと、保護されたユーザープロファイルページを表示するルートを追加します。 📁 index.js
要点:
  • requiresAuth() ミドルウェアは /profile ルートを保護し、未認証のユーザーをログイン画面にリダイレクトします
  • req.oidc.user には、認証済みユーザーのユーザープロファイル情報が含まれています
  • req.oidc.isAuthenticated() は、ログイン状態を示すブール値を返します
  • ログインおよびログアウトのルート (/login/logout) は、auth() ミドルウェアによって自動的に作成されます

6. アプリを実行する

開発サーバーを起動します。
ブラウザで http://localhost:3000 を開きます。
チェックポイントこれで、正しく動作する Auth0 のログインページが表示されるはずです。次のことを確認してください。
  1. “Login” をクリックする - Auth0 の Universal Login ページにリダイレクトされます
  2. 認証を完了する - アプリにリダイレクトされます
  3. “/profile” にアクセスする - ユーザー情報が表示されます
  4. “Logout” をクリックする - アプリと Auth0 の両方からログアウトされます

応用

認証が必要な個々のルートを保護するには、requiresAuth() ミドルウェアを使用します。
Express Router を使用して、特定のパス配下にあるすべてのルートを保護することもできます。
アクセストークンが必要な外部 API を呼び出すには、SDK を設定してアクセストークンを取得するようにします。📁 index.js (更新後の設定)
これらを .env ファイルに追加します。
次に、アクセストークンを使用して API を呼び出します。
リフレッシュトークンを取得するには、scope に offline_access を追加します。
ユーザーのクレーム (ロールや権限など) に基づいてルートを保護します:
role のようなクレームは、Auth0 の Rules または Actions を使用してトークンに追加する必要があります。カスタムクレームを追加する方法の詳細はこちら
本番環境や複数のサーバーインスタンスを実行する場合は、カスタムのセッションストアを使用してください。
カスタムセッションストアを使用すべきケース:
  • 複数のサーバーインスタンスを運用している場合 (ロードバランシング)
  • セッションデータが Cookie のサイズ制限 (約4KB) を超える場合
  • サーバーの再起動後もセッションを保持する必要がある場合
  • バックチャネルログアウトを使用している場合
認証エラーに対する適切なエラー処理を追加します。

トラブルシューティング


次のステップ

認証が動作するようになったら、次の内容も確認してください。

リソース