Evan Sims 著
Authは初めてですか? Auth0 の仕組み、従来型Webアプリケーションとの統合方法、および使用するプロトコルについてご覧ください。
Auth0 を設定する
アプリケーションのキーを取得する

- Domain
- Client ID
- Client Secret
このページ上部のサンプルをダウンロードした場合は、これらの情報はあらかじめ入力されています。
コールバック URL を設定する
このページ上部からダウンロードしたサンプルプロジェクトを使っている場合、Allowed Callback URLs フィールドに追加するコールバック URL は
http://127.0.0.1:3000/ です。Logout URLを設定する
returnTo クエリパラメータで指定します。アプリケーションのログアウト URL は、Application Settings の Allowed Logout URLs フィールドに追加する必要があります。このフィールドが設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーが表示されます。
このページ上部からダウンロードしたサンプルプロジェクトを使って進めている場合は、Allowed Logout URLs フィールドに
http://127.0.0.1:3000 をログアウト URL として追加してください。PHPアプリケーションを統合する
HTTPクライアントとメッセージファクトリーのインストール
PHP SDK のインストール
vendorフォルダーが作成され、Auth0 PHP SDKの使用に必要な依存関係がすべてダウンロードされます。さらに、サンプル内で使用されるvendor/autoload.phpファイルも作成されます。このファイルは、アプリケーションの動作に必要なすべてのクラスを読み込むためのものです。SDKを正しく動作させるには、プロジェクト内でこのオートロードファイルを必ずrequireしてください。
SDKの設定
.env ファイルを作成し、環境変数を入力しましょう。
PHP は .env ファイルを単体では読み取れないため、そのためのライブラリをインストールします。サンプルアプリケーションでは特定のライブラリを使用しますが、実際のアプリケーションでは好みの dotenv ローダーであればどれを使っても問題ありません。プロジェクトディレクトリで、次のシェルコマンドを実行してライブラリをインストールしましょう。
index.php を作成し、サンプルアプリケーション向けに Auth0 PHP SDK のインスタンスを設定しましょう。
アプリケーションのルートを設定する
index.php を再度開いて、アプリケーションに実際の機能を持たせましょう。まず、ルーティングライブラリを読み込み、後でサンプルアプリケーション内のいくつかの箇所から参照できるように、各ルートの完全な URL を便宜上名前付き定数として定義します。
セッションを確認する
getCredentials() があります。これを index ルートに追加して、ログインしていればユーザープロファイルを表示し、そうでなければログインが必要であることを知らせましょう。
user プロパティのレスポンスは配列なので、ユーザーのプロファイルに含まれるすべてのプロパティにアクセスできます。たとえば、ユーザーのニックネームは $session->user<a href="https://auth0.com/docs/users/user-profile-structure" target="_blank" rel="noreferrer">nickname から、メールアドレスは $session->useremail から取得できます。この構造は正規化されたユーザープロファイルです。詳しくはこちらをご覧ください。
ユーザープロファイルの内容は、使用するソーシャルプロバイダーによって異なるため、このアプリケーションのロジック内で特定の値が常に存在すると決めつけてはいけません。たとえば、PHP の isset や null 合体演算子などを使って、値が存在する場合もしない場合も適切に処理してください。
ログイン
login() メソッドを使ってユーザーセッションを設定し、このユーザーがログインするための Auth0 の Universal Login ページへのカスタマイズ済み URL を返します。
認証コールバックの処理
/callback に戻ります。このステップでは、その処理を行います。
Auth0 からユーザーが戻される際、HTTPリクエストのクエリにはいくつかの重要なパラメーターが含まれます。Auth0 PHP SDK の exchange() メソッドがそれらを処理してくれるため、認証フローの完了は簡単です。
ログアウト
logout() メソッドは、サンプルアプリケーションのセッションクッキーを削除し、ユーザーを Auth0 の /logout エンドポイント にリダイレクトします (これにより Auth0 セッションと、ID プロバイダーのセッションがあればそれらもログアウトされます) 。その後、ユーザーは / index ルートに戻ります。