トークンの更新
refreshToken() 関数を使用して、有効期限が切れた際に新しいトークンを取得していました (その例を以下に示します) 。
auth0.js v9 と Lock 11 では、サイレント認証 と checkSession() を使用する必要があります (その例を以下に示します) 。
API を呼び出す
audience パラメーターとして指定する必要があります。
を指定すると、OIDC フローが開始され、Auth0 が ID トークンまたは /userinfo から返すユーザープロファイルデータは OIDC 準拠になります。アプリケーションでユーザープロファイルの非標準クレームを使用している場合は、動作しなくなります。
SPA から API を呼び出す方法の詳細については、SPA Quickstarts の API の呼び出し セクションを参照してください。また、アクセストークンを使用するようにバックエンド API の実装も移行する必要があります。その方法については、API Quickstarts を参照してください。
ユーザープロファイル
/userinfo エンドポイントに完全なユーザープロファイルを含めるレガシー認証フローは、非推奨になりつつあります。新しい OIDC 準拠 API への移行が完了したら、Legacy User Profile トグルがオフになっていることを確認してください。
レガシー認証フローを使用している場合、以下に示すように、ユーザープロファイル全体が ID トークンおよび /userinfo から返されます。
新しいユーザープロファイルは OIDC 仕様に準拠しており、レスポンスでは特定の標準クレームを利用できます。
内容は、どの scopes を要求するかによって異なります。アプリケーションで必要なすべてのクレームを利用できるようにするには、auth0.js または Lock の設定時に要求する scopes を調整する必要があります。また、必要なデータ (たとえば、ユーザーのメタデータ) を返せるように、カスタムクレームを追加できる点にも注意してください。
完全なユーザープロファイルを取得する別の方法として、次のセクションで説明するように、 を使用する方法もあります (認証フロー を通じてプロファイルを取得する代わりに) 。
Management API を使用したユーザープロファイル
https://{yourDomain}/api/v2/ を audience として Auth0 に要求する必要があります。Auth0 は現在、認証時に 2 つの audience を指定することをサポートしていないため、Lock または auth0.js の初期化時には、引き続きアプリケーションの API audience を使用する必要があります。ユーザーの認証後、checkSession を使用して Management API の access_token を取得し、その後 getUser() エンドポイントを呼び出すことができます。
次のスコープを要求できます。
read:current_userupdate:current_user_identitiescreate:current_user_metadataupdate:current_user_metadatadelete:current_user_metadatacreate:current_user_device_credentialsdelete:current_user_device_credentials
checkSession() の呼び出し時に consent_required エラーが発生することがあります。その場合は、Management API で Allow Skipping User Consent が有効になっていることと、localhost から実行していないことを確認してください。