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

メタデータのマージ例

次の例では、API V2 用 Node.js Auth0 SDK を使用して、セカンダリアカウントの user_metadataapp_metadata をプライマリアカウントに明示的にマージする方法を示します。