Skip to main content
Auth0 は、さまざまなのユーザーアカウントのリンクをサポートしています。サーバーサイドコードを使用すれば、従来型の Web アプリケーションでアカウントをリンクできます。この方法では、処理を進める前にユーザーに確認し、許可を得ます。コードはユーザーを認証し、メールアドレスを使ってユーザーを検索して特定します。その後、アプリケーションはユーザーに対象アカウントの資格情報で認証するよう求め、アカウントのリンクを促し、最後にそれらのアカウントをリンクします。 このサンプルアプリケーションの完全なソースコードは、GitHub で確認できます。
  1. ユーザーをアプリケーションにログインさせます。
    ユーザーは Universal Login を使用してアプリケーションにログインします。詳しくは、Auth0 Management API の audience (audience=https://{yourDomain}/api/v2/) 向けの token を要求する Regular Web App Quickstart をご覧ください。
  2. 同じメールアドレスのユーザーを検索します。
    ユーザープロファイルと、同じ確認済みメールアドレスを持つユーザーの一覧を取得できます。
    同じメールアドレスに紐づくすべてのユーザーレコードの一覧を取得するには、アプリケーションから read:users スコープを持つ Management API Access Token を使用して、Auth0 Management API の Get Users By Email エンドポイント を呼び出します。
  3. ユーザーにアカウントのリンクを求めます。
    1. Auth0 が一致するメールアドレスを持つレコードを1件以上返した場合、ユーザーにはその一覧とともに、アカウントのリンクを促す次のメッセージが表示されます。
    2. ユーザーが特定のアカウントをリンクしたい場合は、該当するアカウントの横にある Link をクリックできます。
      サーバーサイドのアカウントリンクページを備えたアプリケーションの例
  4. ユーザーがリンクをクリックすると、アプリケーションはユーザーに対象アカウントでの認証を求め、その後アカウントリンクを行います。
    セカンダリアカウントのuser_metadataを保持して統合するには、APIエンドポイントを呼び出す前に、そのuser_metadataを取得し、プライマリアカウントのメタデータにマージする必要があります。アカウントをリンクすると、セカンダリアカウントのメタデータは破棄されます。アカウント リンクを開始する際には、どのIDをプライマリアカウントにし、どのIDをセカンダリアカウントにするかを選択できます。この選択は、プライマリプロファイルに保持したい属性セットによって決まります。
    次のコードスニペットは、メタデータを検証してマージする方法を示しています:
  5. あなたのアプリケーションは、update:users スコープを持つ Management API アクセストークン を使用して、Auth0 Management API の Link a User Account エンドポイント を呼び出します。

メタデータのマージ例

次の例では、API V2 向け Node.js Auth0 SDK を使用して、セカンダリアカウントの user_metadataapp_metadata がプライマリアカウントにどのように明示的にマージされるかを示します。