AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:次に、AI アシスタントに以下のように依頼します。AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、
auth0/login のインストール、環境変数の設定、認証ルートの登録を自動的に行います。agent skills の完全なドキュメント →はじめに
新しいLaravelプロジェクトを作成
すでに Laravel アプリケーションがある場合は、ステップ 2 に進みます。新しい Laravel プロジェクトを作成します。プロジェクトディレクトリを開きます:
Auth0 Laravel SDKをインストールする
Auth0の認証情報を設定する
Auth0 アプリケーションを作成し、認証情報をプロジェクトに追加する必要があります。次のいずれかの方法を選択してください。
- クイックセットアップ(推奨)
- CLI
- Dashboard
Auth0 アプリを作成し、適切な設定値があらかじめ入力された
.env 用の認証情報をコピーします。これらの値をプロジェクトの .env ファイルに追加します。認証用ルートを追加する
Auth0 SDK は、アプリケーションに対して次のルートを自動的に登録します。追加のルート設定は不要です。
| Route | Purpose |
|---|---|
/login | Auth0 のログインフローを開始します |
/logout | ユーザーをログアウトし、Auth0 にリダイレクトします |
/callback | Auth0 の認証コールバックを処理します |
アプリケーションで Laravel Breeze、Fortify、または Jetstream を使用している場合、SDK の
/login、/logout、/callback ルートが、それらのパッケージによって登録されたルートと競合する可能性があります。ルートを手動で登録する手順については、SDK README を参照してください。routes/web.php を更新して、ホームルートを追加します。routes/web.php
ミドルウェアを使用してルートを保護する
Laravel の
auth ミドルウェアを使用すると、任意のルートで認証を必須にできます。can ミドルウェアを使用して、特定の権限を必須にすることもできます。routes/web.php
権限は Auth0 API の設定で定義され、ロールを通じてユーザーに割り当てられます。詳しくは、ロールベースのアクセス制御を参照してください。
アプリケーションを実行する
アプリケーションは http://localhost:8000 で実行されます。ポート 8000 がすでに使用されている場合は、
php artisan serve --port=8001 を実行し、新しいポートを使用するように Auth0 アプリケーションの Allowed Callback URLs と Allowed Logout URLs を更新してください。チェックポイントブラウザーで http://localhost:8000 を開きます。次のルートにアクセスして、統合が正しく機能していることを確認してください。
- http://localhost:8000/login — Auth0 のログインフローを開始します
- http://localhost:8000/private — 未認証の場合はログイン画面にリダイレクトされ、ログイン済みの場合はウェルカムメッセージが表示されます
- http://localhost:8000/logout — ログアウトし、ホームページに戻ります
トラブルシューティング
コールバック URL の不一致エラー
コールバック URL の不一致エラー
原因: Auth0 に送信されたコールバック URL が、アプリケーションの Allowed Callback URLs リスト内のどの URL とも一致していません。対処方法:
- Auth0 Dashboard で Applications > Applications → 対象のアプリ → Settings に移動します
- Allowed Callback URLs に
http://localhost:8000/callbackを追加します - Save Changes をクリックします
ログイン後に state / CSRF エラーが発生する
ログイン後に state / CSRF エラーが発生する
原因: セッションまたは Cookie の設定に問題があります。Laravel セッションで、ログイン リダイレクトからコールバックまでの間の state が保持されていません。対処方法:
.envのSESSION_DRIVERがfile、database、またはredisに設定されていることを確認します (arrayは使用しないでください)- 設定とキャッシュをクリアします:
- 開発サーバーを再起動します
AUTH0_DOMAIN が設定されていない、または認証情報が読み込まれない
AUTH0_DOMAIN が設定されていない、または認証情報が読み込まれない
原因: SDK が Auth0 の認証情報を見つけられません。対処方法: プロジェクトのルート ディレクトリに、次のいずれかが存在することを確認してください。
AUTH0_DOMAIN、AUTH0_CLIENT_ID、AUTH0_CLIENT_SECRETを含む.envファイル- Auth0 CLI が生成した
.auth0.app.jsonファイル
.env を更新したら、設定キャッシュをクリアします:/login、/logout、または /callback で 404 が発生する
/login、/logout、または /callback で 404 が発生する
原因: SDK のルートが登録されていません。通常は、サービスプロバイダーが読み込まれていないことが原因です。対処方法:
php artisan vendor:publish --tag auth0を実行済みであることを確認します- パッケージの自動検出が有効になっていることを確認します (
composer.jsonの"dont-discover": []を確認してください) php artisan route:list | grep auth0を実行して、ルートが登録されていることを確認します- ルートが見つからない場合は、サービスプロバイダーを手動で登録します。Laravel 11 以降では、
bootstrap/providers.phpに追加します:
bootstrap/providers.php
高度な使い方
Management API — ユーザーメタデータの更新
Management API — ユーザーメタデータの更新
Auth0 Management API を使用してユーザー情報を更新できます。すべての Management API エンドポイントには、SDK の すべての Management API メソッドの完全なリファレンスは、SDK ドキュメントで確認できます。
Auth0::management() メソッドからアクセスできます。Management API を呼び出す前に、アプリケーションに Management API へのアクセス権を付与してください。- Auth0 Dashboard → Applications > APIs → Auth0 Management API に移動します
- Machine to Machine Applications タブを選択します
- Laravel アプリケーションを認可し、
read:usersとupdate:usersスコープを付与します
routes/web.php
カスタムユーザーモデルとリポジトリ
カスタムユーザーモデルとリポジトリ
SDK はカスタムユーザーモデルとリポジトリをサポートしており、Auth0 を IDプロバイダーとして維持しながら、独自のデータベースでユーザーを保存および取得できます。実装ガイド全体については、User Repositories and Models を参照してください。
SDK イベントのリッスン
SDK イベントのリッスン
SDK は認証ライフサイクルの要所でイベントを発生させます。ログイン、ログアウト、トークン更新時などのイベントを利用して、SDK のコアコードを変更することなく動作を柔軟にカスタマイズできます。イベントの一覧と実装例については、Hooking Events を参照してください。
ロールベースのアクセス制御 (RBAC)
ロールベースのアクセス制御 (RBAC)
Auth0 RBAC を使用してロール経由でユーザーに権限を割り当て、RBAC を設定するには、次の手順を実行します。
can ミドルウェアを使って Laravel でそれを適用します。routes/web.php
- Auth0 Dashboard → Applications > APIs → 対象の API → Permissions に移動します
- アプリケーションに必要な権限 (例:
admin:dashboard、read:messages) を追加します - User Management > Roles に移動し、ロールを作成して権限を割り当てます
- ユーザープロフィールページからロールを割り当てます
次のステップ
- Auth0 Dashboard — Auth0 テナントとアプリケーションを設定、管理します
- laravel-auth0 SDK — SDK の完全なドキュメントと高度な統合
- ロールベースのアクセス制御 — ロールを使用してユーザーに権限を割り当てます
- Auth0 Marketplace — Auth0 の機能を拡張するための統合を見つける