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

AI プロンプト

AIを使ってAuth0を統合しますか? このプロンプトをCursor、Windsurf、Copilot、Claude Code、またはお好みのAI搭載IDEに追加して、開発を高速化しましょう。
前提条件: 作業を始める前に、次のソフトウェアがインストールされていることを確認してください。
  • Node.js 20 LTS 以降
  • npm 10 以上、または yarn 1.22 以上、または pnpm 8 以上
  • jq - Auth0 CLI のセットアップに必要です
Next.js のバージョン互換性: このクイックスタートでは Next.js 15 を使用します。これは Auth0 ソフトウェア開発キット (SDK) によって完全にサポートされています。Next.js 16 も互換性がありますが、インストール時に --legacy-peer-deps フラグを付けて実行する必要があります(詳細はステップ 2 を参照してください)。

はじめに

このクイックスタートでは、Next.js アプリケーションに Auth0 による認証機能を追加する方法を説明します。Auth0 Next.js ソフトウェア開発キット (SDK) を使って、サーバーサイドレンダリング、安全なログイン機能、保護されたルートを備えたフルスタック Web アプリケーションを構築します。
1

新規プロジェクトを作成

このクイックスタート用の新しい Next.js プロジェクトを作成する
プロジェクトを開く
Next.js 15 プロジェクトを作成するために create-next-app@15 を使用します。これは Auth0 ソフトウェア開発キット (SDK) によって完全にサポートされています。Next.js 16 を使用したい場合、またはすでに Next.js 16 プロジェクトがある場合は、ステップ 2 で Auth0 SDK をインストールするときに --legacy-peer-deps を使用する必要があります。
2

Auth0 Next.js ソフトウェア開発キット (SDK) のインストール

Next.js 16 ユーザー向け: Next.js 16 を使用している場合(または Next.js 16 にアップグレードした場合)は、--legacy-peer-deps フラグを付けてインストールしてください:
SDK での Next.js 16 対応はまだ進行中のため、--legacy-peer-deps フラグが必要です。このフラグを使用すれば、SDK は Next.js 16 で正しく動作します。
3

プロジェクトファイルを作成

Auth0 連携に必要なディレクトリとファイルをすべて作成します。
4

Auth0 アプリケーションを設定する

次に、Auth0テナントで新しいアプリケーションを作成し、環境変数をプロジェクトに追加する必要があります。CLIコマンドを実行して自動的に実行するか、ダッシュボードから手動で実行するかを選択できます:
プロジェクトのルートディレクトリで次のシェルコマンドを実行して Auth0 アプリを作成し、.env.local ファイルを生成します。
5

Auth0 の設定を行う

src/lib/auth0.ts に Auth0 クライアント用のコードを追加します:`
src/lib/auth0.ts
6

ミドルウェアを追加

src/middleware.ts にミドルウェアのコードを追加します。
src/middleware.ts
src/ ディレクトリを使用しているため、middleware.ts ファイルは src/ 内に作成されます。src/ ディレクトリを使用していない場合は、代わりにプロジェクトルート直下に作成してください。
このミドルウェアは、次の認証ルートを自動的にマウントします。
  • /auth/login - ログインルート
  • /auth/logout - ログアウトルート
  • /auth/callback - コールバックルート
  • /auth/profile - ユーザープロファイルルート
  • /auth/access-token - アクセストークンルート
  • /auth/backchannel-logout - バックチャネルログアウトルート
7

ログイン、ログアウト、プロファイルの各コンポーネントを作成する

ステップ 3 で作成したファイルにコンポーネントコードを追加します:
8

メインページを更新する

src/app/page.tsx を次の内容に置き換えてください:
src/app/page.tsx
9

Auth0Provider を使用してレイアウトを更新する(任意)

src/app/layout.tsx を更新して、アプリを Auth0Provider でラップします:
src/app/layout.tsx
v4 では、Auth0Provider は必須ではなく任意です。サーバーレンダリング時に初期ユーザーを渡し、それを useUser() フックから利用できるようにしたい場合にのみ必要になります。
10

スタイルを追加する

src/app/globals.css を最新のAuth0ブランドのスタイリングに置き換えます:
src/app/globals.css
11

アプリを起動する

アプリは http://localhost:3000 で利用できます。Auth0 ソフトウェア開発キット (SDK) v4 では、認証用ルートが自動的に /auth/* にマウントされます(v3 のように /api/auth/* ではありません)。
チェックポイントこれで、localhost 上で Auth0 のログインページが問題なく動作しているはずです。

トラブルシューティング

JWEDecryptionFailed: decryption operation failed というエラーが表示される場合、AUTH0_SECRET が無効であるか、別のシークレットで暗号化された古いセッションクッキーが原因です。解決策:
  1. 次のコマンドで新しいシークレットを生成します:
  1. .env.local ファイルを次のように更新します:
  1. localhost:3000ブラウザのクッキーを削除 します:
    • Chrome/Edge: F12 → Application タブ → Cookies → localhost のクッキーをすべて削除
    • Firefox: F12 → Storage タブ → Cookies → localhost のクッキーをすべて削除
    • Safari: Develop メニュー → Show Web Inspector → Storage タブ → Cookies → すべて削除
  2. 開発サーバーを再起動します:
シークレットは必ず 32 バイト(16 進数で 64 文字)である必要があります。アプリが、別のシークレットで暗号化された既存のセッションクッキーを復号しようとしたときに、このエラーが発生します。
ログインをクリックしたときに 404 ページへ遷移する場合は、次のよくある問題を確認してください:
  1. ミドルウェアの場所: src/middleware.ts が正しい場所に存在することを確認してください
  2. ミドルウェアのコード: ミドルウェアがステップ 6 のコードと一致していることを確認してください
  3. サーバーの再起動: ミドルウェアを作成したあとに開発サーバーを再起動してください
  4. import の確認: import { auth0 } from "./lib/auth0" のパスが正しいことを確認してください
“Cannot find module ’@/components/LoginButton’” などのエラーが表示される場合は、次の点を確認してください:
  1. ファイルの存在確認: ステップ 3 のすべてのファイルが作成されていることを確認してください
  2. パスの確認: コンポーネントが src/components/ ディレクトリ内にあることを確認してください
  3. TypeScript の再起動: Cmd+Shift+P(Mac)または Ctrl+Shift+P(Windows)を押し、「TypeScript: Restart TS Server」を実行してください
  4. import の確認: ~/components/* ではなく、@/components/* を使用していることを確認してください

高度な利用方法

このクイックスタートは Auth0 Next.js SDK v4 を使用しており、v3 から次のように大きく変更されています:
  • 動的ルートハンドラーが不要 - 認証用ルートは middleware によって自動的にマウントされます
  • クライアント設定の簡素化 - new Auth0Client() が自動的に環境変数を読み込みます
  • 新しいルートパス - ルートは /api/auth/* ではなく /auth/* に配置されます
  • middleware が必須 - すべての認証機能は middleware を通じて実行されます
  • <a> タグを使用 - ナビゲーションには onClick 付きボタンではなく <a href="/auth/login"> を使用する必要があります

認証ルート

SDK は middleware を通して次のルートを自動的にマウントします:
これらのルートで 404 エラーが発生する場合は、次の点を確認してください:
  1. middleware.ts ファイルが正しい場所(プロジェクトルート、または src/ ディレクトリを使用している場合は src/ 内)に作成されていること
  2. 手順 5 に示した matcher パターンで middleware が正しく設定されていること
  3. middleware ファイルを作成した後に開発サーバーを再起動していること
Auth0 Next.js SDK v4 は App Router パターンと Pages Router パターンの両方をサポートします。以下は代表的なサーバーサイドのパターンです:
app/protected/page.tsx
クライアントサイドの認証状態には、useUser フックを使用します:
components/UserProfile.tsx
API ルートを保護するには、withApiAuthRequired メソッドを使用します。
app/api/protected/route.ts