AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などのAIコーディングアシスタントを使っている場合は、Agent Skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:次に、AI アシスタントにこう依頼します。AI アシスタントが、Auth0 アプリケーションの作成、資格情報の取得、
auth0/login のインストール、環境変数の設定、認証ルートの登録を自動的に行います。Agent Skills の完全なドキュメント →はじめに
1
新しいLaravelプロジェクトを作成
すでに Laravel アプリケーションがある場合は、手順 2 に進んでください。新しい Laravel プロジェクトを作成します:プロジェクトディレクトリを開きます:
2
Auth0 Laravel SDKをインストールする
3
Auth0の資格情報を設定する
Auth0 アプリケーションを作成し、資格情報をプロジェクトに追加する必要があります。次のいずれかの方法を選択してください。
- クイック設定(推奨)
- CLI
- Dashboard
Auth0 App を作成し、適切な設定値があらかじめ入力された
.env 用の資格情報をコピーします。これらの値をプロジェクトの .env ファイルに追加します。4
認証用ルートを追加
Auth0 SDK は、アプリケーションに対して次のルートを自動的に登録します。追加のルート設定は不要です。
アプリケーションで Laravel Breeze、Fortify、または Jetstream を使用している場合、SDK の
/login、/logout、/callback ルートが、それらのパッケージによって登録されたルートと競合する可能性があります。手動でルートを登録する手順については、SDK README を参照してください。routes/web.php を更新して、ホームルートを追加します。routes/web.php
5
ミドルウェアを使ってルートを保護する
Laravel’s
auth ミドルウェアを使用すると、任意のルートで認証を必須にできます。can ミドルウェアを使用して、特定の権限を必須にすることもできます:routes/web.php
権限は Auth0 API の設定で定義され、ロールを通じてユーザーに割り当てられます。詳しくは、ロールベースのアクセス制御を参照してください。
6
アプリケーションを実行する
アプリケーションは 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 → アプリケーション > アプリケーション → 対象のアプリ → 設定 に移動します
- Allowed Callback URLs に
http://localhost:8000/callbackを追加します - 変更を保存 をクリックします
ログイン後に 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 → アプリケーション > APIs → Auth0 Management API に移動します
- Machine to Machine アプリケーション タブを選択します
- Laravel アプリケーションを認可し、
read:usersとupdate:usersのスコープを付与します
routes/web.php
カスタムユーザーモデルとリポジトリ
カスタムユーザーモデルとリポジトリ
SDK はカスタムユーザーモデルとリポジトリをサポートしており、Auth0 をアイデンティティプロバイダーとして利用しながら、独自のデータベースでユーザーの保存と取得を行えます。実装ガイドの詳細は、User Repositories and Models を参照してください。
SDK イベントの監視
SDK イベントの監視
SDK は、認証ライフサイクルの重要なタイミングでイベントを発生させます。ログイン、ログアウト、トークンの更新などに応じてイベントが発生するため、SDK のコアコードを変更せずに動作を柔軟にカスタマイズできます。イベントの一覧と実装例については、Hooking Events を参照してください。
ロールベースのアクセス制御 (RBAC)
ロールベースのアクセス制御 (RBAC)
Auth0 の RBAC を使用すると、ロールを通じてユーザーに権限を割り当て、Laravel では RBAC を設定するには:
can ミドルウェアを使ってその権限を適用できます。routes/web.php
- Auth0 Dashboard → アプリケーション > APIs → 対象の API → Permissions に移動します
- アプリケーションに必要な権限を追加します (例:
admin:dashboard、read:messages) - User Management > Roles に移動し、ロールを作成して権限を割り当てます
- ユーザーのプロファイルページからロールを割り当てます
次のステップ
- Auth0 Dashboard — Auth0 テナントとアプリケーションの設定と管理
- laravel-auth0 SDK — SDK の完全なドキュメントと高度な連携
- ロールベースのアクセス制御 — ロールを使用してユーザーに権限を割り当てる
- Auth0 Marketplace — 連携を見つけて Auth0 の機能を拡張する