> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> レガシー認証フローから移行する方法を説明します。

# レガシー認証フローからの移行

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

<div id="renew-tokens">
  ## トークンの更新
</div>

レガシーなアプリケーションでは、<Tooltip tip="リフレッシュトークン: ユーザーに再度ログインさせることなく、新しいアクセストークンを取得するために使用されるトークン。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Refresh+Tokens">リフレッシュトークン</Tooltip> と `refreshToken()` 関数を使用して、有効期限が切れた際に新しいトークンを取得していました (その例を以下に示します) 。

auth0.js v9 と Lock 11 では、[サイレント認証](/docs/ja-jp/authenticate/login/configure-silent-authentication) と `checkSession()` を使用する必要があります (その例を以下に示します) 。

<div id="call-apis">
  ## API を呼び出す
</div>

レガシーなアプリケーションでは、API を呼び出すために <Tooltip tip="ID トークン: リソースへのアクセスではなく、クライアント自体を対象とした資格情報です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=ID+token">ID トークン</Tooltip> を使用していました。これは推奨されない方法であり、<Tooltip tip="アクセストークン: API へのアクセスに使用される、不透明な文字列または JWT 形式の認可資格情報です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=access+tokens">アクセストークン</Tooltip> のみを使用することを推奨します。

API を呼び出すには、auth0.js または Lock の初期化時に、API 識別子を `audience` パラメーターとして指定する必要があります。

<Tooltip tip="audience: 発行されたトークンの対象者を一意に識別する値です。トークン内では aud という名前で表され、その値には ID トークンの場合はアプリケーション（Client ID）の ID、アクセストークンの場合は API（API Identifier）の ID が含まれます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=audience">audience</Tooltip> を指定すると、OIDC フローが開始され、Auth0 が ID トークンまたは `/userinfo` から返すユーザープロファイルデータは OIDC 準拠になります。アプリケーションでユーザープロファイルの非標準クレームを使用している場合は、動作しなくなります。

SPA から API を呼び出す方法の詳細については、SPA Quickstarts の **API の呼び出し** セクションを参照してください。また、アクセストークンを使用するようにバックエンド API の実装も移行する必要があります。その方法については、API Quickstarts を参照してください。

<div id="user-profiles">
  ## ユーザープロファイル
</div>

ID トークンと `/userinfo` エンドポイントに完全なユーザープロファイルを含めるレガシー認証フローは、非推奨になりつつあります。新しい OIDC 準拠 API への移行が完了したら、`Legacy User Profile` トグルがオフになっていることを確認してください。

レガシー認証フローを使用している場合、以下に示すように、ユーザープロファイル全体が ID トークンおよび `/userinfo` から返されます。

新しいユーザープロファイルは OIDC 仕様に準拠しており、レスポンスでは特定の[標準クレーム](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)を利用できます。

内容は、どの scopes を要求するかによって異なります。アプリケーションで必要なすべてのクレームを利用できるようにするには、auth0.js または Lock の設定時に要求する scopes を調整する必要があります。また、必要なデータ (たとえば、ユーザーのメタデータ) を返せるように、カスタムクレームを追加できる点にも注意してください。

完全なユーザープロファイルを取得する別の方法として、次のセクションで説明するように、<Tooltip tip="Management API: 顧客が管理タスクを実行できるようにするプロダクト。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> を使用する方法もあります (認証フロー を通じてプロファイルを取得する代わりに) 。

<div id="user-profile-with-management-api">
  ## Management API を使用したユーザープロファイル
</div>

レガシーフローでは、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 から実行していないことを確認してください。
