Skip to main content

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などのAIコーディングアシスタントを使っている場合は、Agent Skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:
次に、AI アシスタントにこう依頼します。
AI アシスタントが、Auth0 アプリケーションの作成、資格情報の取得、auth0/login のインストール、環境変数の設定、認証ルートの登録を自動的に行います。Agent Skills の完全なドキュメント →
前提条件: 開始する前に、以下がインストールされていることを確認してください。インストール確認: php --version && composer --version

はじめに

このクイックスタートでは、LaravelアプリケーションにAuth0認証を追加する方法を説明します。Auth0 Laravel SDK を使用して、安全なログイン、ログアウト、保護されたルート、ユーザープロファイルへのアクセスを設定します。
1

新しいLaravelプロジェクトを作成

すでに Laravel アプリケーションがある場合は、手順 2 に進んでください。新しい Laravel プロジェクトを作成します:
プロジェクトディレクトリを開きます:
2

Auth0 Laravel SDKをインストールする

Auth0 Laravel SDK をインストールするには、プロジェクトのディレクトリで次のコマンドを実行してください。
次に、SDK の設定ファイルを公開します:
3

Auth0の資格情報を設定する

Auth0 アプリケーションを作成し、資格情報をプロジェクトに追加する必要があります。次のいずれかの方法を選択してください。
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 URLsAllowed Logout URLs を更新してください。
チェックポイントブラウザーで http://localhost:8000 を開きます。連携を確認するため、次のルートを試してください。

トラブルシューティング

原因: Auth0 に送信されたコールバック URL が、アプリケーションの Allowed Callback URLs に登録されている URL のいずれとも一致していません。修正方法:
  1. Auth0 Dashboardアプリケーション > アプリケーション → 対象のアプリ → 設定 に移動します
  2. Allowed Callback URLshttp://localhost:8000/callback を追加します
  3. 変更を保存 をクリックします
末尾にスラッシュが付いていないこと、およびポート番号が実行中のサーバーと一致していることを確認してください。
原因: セッションまたは Cookie の設定に問題があります。Laravel のセッションで、ログインのリダイレクトからコールバックまでの間、state が保持されていません。修正方法:
  1. .envSESSION_DRIVERfiledatabase、または redis に設定されていることを確認します (array は不可)
  2. 設定とキャッシュをクリアします:
  1. 開発サーバーを再起動します
原因: SDK が Auth0 の資格情報を見つけられません。修正方法: プロジェクトのルートに、次のいずれかが存在することを確認してください。
  • AUTH0_DOMAINAUTH0_CLIENT_IDAUTH0_CLIENT_SECRET を含む .env ファイル
  • Auth0 CLI で生成された .auth0.app.json ファイル
.env を更新した後、設定キャッシュをクリアしてください:
原因: SDK のルートが登録されていません。通常は、サービスプロバイダーが読み込まれていないことが原因です。修正方法:
  1. php artisan vendor:publish --tag auth0 を実行済みであることを確認します
  2. パッケージの自動検出が有効になっていることを確認します (composer.json"dont-discover": [] を確認)
  3. php artisan route:list | grep auth0 を実行して、ルートが登録されていることを確認します
  4. ルートが見つからない場合は、サービスプロバイダーを手動で登録します。Laravel 11 以降では、bootstrap/providers.php に追加します:
bootstrap/providers.php

高度な使用方法

Auth0 Management API を使用して、ユーザー情報を更新できます。Management API のすべてのエンドポイントには、SDK の Auth0::management() メソッドからアクセスできます。Management API を呼び出す前に、アプリケーションが Management API にアクセスできるよう認可してください。
  1. Auth0 Dashboardアプリケーション > APIsAuth0 Management API に移動します
  2. Machine to Machine アプリケーション タブを選択します
  3. Laravel アプリケーションを認可し、read:usersupdate:users のスコープを付与します
routes/web.php
Management API の全メソッドのリファレンスは、SDK ドキュメントで確認できます。
SDK はカスタムユーザーモデルとリポジトリをサポートしており、Auth0 をアイデンティティプロバイダーとして利用しながら、独自のデータベースでユーザーの保存と取得を行えます。実装ガイドの詳細は、User Repositories and Models を参照してください。
SDK は、認証ライフサイクルの重要なタイミングでイベントを発生させます。ログイン、ログアウト、トークンの更新などに応じてイベントが発生するため、SDK のコアコードを変更せずに動作を柔軟にカスタマイズできます。イベントの一覧と実装例については、Hooking Events を参照してください。
Auth0 の RBAC を使用すると、ロールを通じてユーザーに権限を割り当て、Laravel では can ミドルウェアを使ってその権限を適用できます。
routes/web.php
RBAC を設定するには:
  1. Auth0 Dashboardアプリケーション > APIs → 対象の API → Permissions に移動します
  2. アプリケーションに必要な権限を追加します (例: admin:dashboardread:messages)
  3. User Management > Roles に移動し、ロールを作成して権限を割り当てます
  4. ユーザーのプロファイルページからロールを割り当てます
詳細は、Role-Based Access Control を参照してください。

次のステップ

Laravel アプリケーションで認証が動作するようになったので、Auth0 のさらに多くの機能を見ていきましょう。