メインコンテンツへスキップ
Auth0は、様々なIDプロバイダーのユーザーアカウントのリンクをサポートします。サーバー側コードを使用して、通常のWebアプリケーションのアカウントをリンクし、続行する前にユーザーに許可を求めることができます。コードは、ユーザーを認証し、メールアドレスを使用してユーザーを検索・特定します。その後、アプリケーションは、ターゲットアカウントの資格情報で認証することで、アカウントをリンクすることをユーザーに促し、アカウントとリンクします。 このサンプルアプリケーションの全ソースは GitHubでご覧いただけます。
  1. ユーザーをアプリケーションにログインさせる。 ユーザーは ユニバーサルログインを使用して、アプリケーションに対して認証を受けます。詳細については、Auth0 Management APIオーディエンスのトークンを要求する(オーディエンス=https://{yourDomain}/api/v2/)、Regular Web App Quickstart(通常のWebアプリクイックスタート)をお読みください。
  2. 同じメールアドレスを持つユーザーを検索する。 同じ検証済みメール持っているユーザーのユーザープロファイルおよびリストを取得できます。
    同じ検証済みメール持っているユーザーレコードの全リストを取得するには、アプリケーションは、read:usersスコープを持つManagement APIアクセストークンを使用してAuth0 Management APIのGet Users By Emailエンドポイントを呼び出します。
  3. アカウントのリンクをユーザーに促す。
    1. Auth0が、一致するメールアドレスを持つ1件以上のレコードを返すと、ユーザーには、アカウントのリンクを促す以下のメッセージと共に、リストが表示されます。
    2. ユーザーがアカウントをリンクしたい場合は、アカウントの隣にある**[Link(リンク)]** をクリックします。
      Example application with server-side account linking page
  4. ユーザーが [Link(リンク)] をクリックすると、アプリケーションは、ターゲットアカウントで認証を受けることをユーザーに求め、その後アカウントのリンクを実行します。
    セカンダリアカウントからuser_metadataを保持・マージするには、APIエンドポイントを呼び出す前に取得し、プライマリアカウントのメタデータにマージしなければなりません。アカウントがリンクされた時点で、セカンダリアカウントのメタデータは破棄されます。アカウントのリンクを始めるときに、プライマリアカウントとして使用するIDと、セカンダリアカウントとして使用するIDを選択できます。プライマリプロファイルでどの属性を保持したいかに応じて、選択してください。
    以下のコードスニペットは、メタデータの検証およびマージの方法を示しています。
  5. アプリケーションは、update:usersスコープを持つManagement APIアクセストークンを使用してAuth0 Management APIのLink a User Accountエンドポイントを呼び出します。

メタデータマージの例

以下の例は、Node.js Auth0 SDK for API V2を使用して、セカンダリアカウントの user_metadataおよびapp_metadataをプライマリアカウントにマージする方法を明確に示しています。

もっと詳しく