Skip to main content
Lock バージョン 11 未満および Auth0.js バージョン 9 未満を使用している場合は、現在は非推奨となっているレガシー認証フローを利用できました。Auth0 では、Auth0.js と Lock の旧バージョンのコードを、新しい OIDC 準拠 API に移行することを推奨しています。

トークンの更新

レガシーなアプリケーションでは、refreshToken() 関数を使用して、有効期限が切れた際に新しいトークンを取得していました (その例を以下に示します) 。 auth0.js v9 と Lock 11 では、サイレント認証checkSession() を使用する必要があります (その例を以下に示します) 。

API を呼び出す

レガシーなアプリケーションでは、API を呼び出すために を使用していました。これは推奨されない方法であり、 のみを使用することを推奨します。 API を呼び出すには、auth0.js または Lock の初期化時に、API 識別子を audience パラメーターとして指定する必要があります。 を指定すると、OIDC フローが開始され、Auth0 が ID トークンまたは /userinfo から返すユーザープロファイルデータは OIDC 準拠になります。アプリケーションでユーザープロファイルの非標準クレームを使用している場合は、動作しなくなります。 SPA から API を呼び出す方法の詳細については、SPA Quickstarts の API の呼び出し セクションを参照してください。また、アクセストークンを使用するようにバックエンド API の実装も移行する必要があります。その方法については、API Quickstarts を参照してください。

ユーザープロファイル

ID トークンと /userinfo エンドポイントに完全なユーザープロファイルを含めるレガシー認証フローは、非推奨になりつつあります。新しい OIDC 準拠 API への移行が完了したら、Legacy User Profile トグルがオフになっていることを確認してください。 レガシー認証フローを使用している場合、以下に示すように、ユーザープロファイル全体が ID トークンおよび /userinfo から返されます。 新しいユーザープロファイルは OIDC 仕様に準拠しており、レスポンスでは特定の標準クレームを利用できます。 内容は、どの scopes を要求するかによって異なります。アプリケーションで必要なすべてのクレームを利用できるようにするには、auth0.js または Lock の設定時に要求する scopes を調整する必要があります。また、必要なデータ (たとえば、ユーザーのメタデータ) を返せるように、カスタムクレームを追加できる点にも注意してください。 完全なユーザープロファイルを取得する別の方法として、次のセクションで説明するように、 を使用する方法もあります (認証フロー を通じてプロファイルを取得する代わりに) 。

Management API を使用したユーザープロファイル

レガシーフローでは、Management API は ID トークンを使った認証をサポートしていました。この方法は非推奨となっており、現在はアクセストークンを使って呼び出す必要があります。 アクセストークンを取得するには、https://{yourDomain}/api/v2/audience として Auth0 に要求する必要があります。Auth0 は現在、認証時に 2 つの audience を指定することをサポートしていないため、Lock または auth0.js の初期化時には、引き続きアプリケーションの API audience を使用する必要があります。ユーザーの認証後、checkSession を使用して Management API の access_token を取得し、その後 getUser() エンドポイントを呼び出すことができます。 次のスコープを要求できます。
  • read:current_user
  • update:current_user_identities
  • create:current_user_metadata
  • update:current_user_metadata
  • delete:current_user_metadata
  • create:current_user_device_credentials
  • delete:current_user_device_credentials
checkSession() の呼び出し時に consent_required エラーが発生することがあります。その場合は、Management API で Allow Skipping User Consent が有効になっていることと、localhost から実行していないことを確認してください。