Auth0のLaravel
SDKを使用すると、Laravelアプリケーションに認証、ユーザープロファイル管理、ルーティングに基づくアクセスコントロールを手軽に追加できます。このガイドでは、新規(または既存)のLaravel
9または10アプリケーションにAuth0を統合する方法を説明します。
1
Laravelをインストールする
Laravelアプリケーションをまだセットアップしていない場合 には、シェルを開いて、新規プロジェクトに適切なディレクトリに移動し、次のコマンドを実行します:このガイドにあるすべてのコマンドは、Laravelプロジェクトディレクトリのルートから実行されていることを前提としています。必ず新規プロジェクトのディレクトリに移動(
cd
)してください:2
SDKをインストールする
3
SDKを構成する
プロジェクトディレクトリから次のコマンドを実行して、Auth0 CLIをダウンロードします:そして、Auth0アカウントを使ってCLIを認証し、プロンプトでユーザーとしてログインすることを選択します:次に、Auth0で新しいアプリケーションを作成します:また、新しいAPIも作成します:これで、SDKを構成するプロジェクトディレクトリ内に2つのファイルが作成されます。これらのファイルには資格情報が保管されているため、機密として扱うことが重要です。必ず、バージョン管理では、これらのファイルをコミットしないようにしてください。Gitを使用している場合は、必ず
.gitignore
ファイルに追加します:4
ログイン経路
SDKは、アプリケーションのユーザーを認証するために必要なすべての経路を自動的に登録します。これらについて細かな制御が必要な場合や、アプリケーションで既存の経路と競合する場合には、SDKのコントローラーを手動で登録することができます。高度な統合について、SDKのREADMEを参照してください。
5
アクセス制御
Laravelの認証機能は「guards」を使用して、それぞれの要求でユーザーがどのように認証されるのかを定義します。アプリケーションの経路へのアクセスを制約するには、Auth0 SDKの認証ガードを使用することができます。経路へのアクセスに先だって、ユーザーの認証を要求するには、Laravelのまた、これをLaravelの
auth
ミドルウェアを使用することができます。can
ミドルウェアと組み合わせると、認証済みのユーザーに特定の権限を要求することができます。6
ユーザー情報
認証済みのユーザーについての情報は、Laravelの
Auth
ファサードまたはauth()
ヘルパー関数を介して利用できます。以下は、ユーザーの識別子とメールアドレスを取得する例です。7
ユーザー管理
ユーザー情報は、Auth0 Management
APIを使用して更新することができます。管理エンドポイントはすべて、SDKのSDKにあるManagement APIの全メソッドについては、こちらにクイックリファレンスガイドがあります。
management()
メソッドでアクセスすることができます。Management APIを呼び出す前に、アプリケーションがManagement APIと通信できるようにしなければなりません。 これを実行するには、Auth0
DashboardのAPIページで[Auth0 Management API]
を選択してから[Machine to Machine
Applications(M2Mアプリケーション)]タブを選択します。Laravelアプリケーションを認可してから、下矢印をクリックして、付与したいスコープを選択します。以下の例では、ユーザーのメタデータを更新し、好きな色をランダムに割り当てますが、必ずread:users
とupdate:users
のスコープを付与するようにします。APIエンドポイントのリストと必要なスコープについては、Management APIのドキュメントを参照してください。8
アプリケーションを実行する
Laravelアプリケーションを起動する準備が整いました。要求を受け付けることができます:
チェックポイント
ブラウザーを開いて、以下の経路にアクセスしてみてください。- http://localhost:8000(パブリックルートを確認する)
- http://localhost:8000/private(認証を促す)
- http://localhost:8000(パブリックルートを確認する、今回は認証済み)
- http://localhost:8000/scope(
read:messages
permissionがあるかを確認する) - http://localhost:8000/update(ユーザープロファイルを更新する)
- http://localhost:8000/logout(ログアウトする)
その他の情報
- ユーザーリポジトリとモデルはAuth0 Laravel SDKを拡張して、カスタムのユーザーモデルを使用し、データベースでユーザーの保管や取得を行う方法を指定することができます。
- イベントフックはAuth0 Laravel SDKで発生したイベントを聞く方法を処理して、統合の動作を完全にカスタマイズすることができます。
- Management API対応はAuth0 Laravel SDKに組み込まれているため、LaravelアプリケーションからManagement APIと対話することができます。
次のステップ
成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。- Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
- laravel-auth0 SDK - このチュートリアルで使用されているSDKをより詳しく説明します
- Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます