メインコンテンツへスキップ
Auth0のユーザーアカウントのリンク解除エンドポイントまたは Auth0.js ライブラリを使用して、対象のユーザーアカウントからアイデンティティのリンクを解除し、再び別個のユーザーアカウントとして扱えるようにします。 リンク解除プロセスの結果は次のとおりです。
  • セカンダリアカウントは、プライマリアカウントの identities 配列から削除されます。
  • 新しいセカンダリユーザーアカウントが作成されます。
  • セカンダリアカウントにはメタデータがありません。
セカンダリアイデンティティ自体を完全に削除したい場合は、まずアカウントのリンクを解除し、その後で新しく作成されたセカンダリアカウントを削除する必要があります。 エンドポイントをどこから呼び出すかに応じて、次の 2 つのスコープのいずれかを使用します。 このエンドポイントは次のパラメーターを使用します。
ParameterTypeDescription
idstringプライマリユーザーアカウントの ID (必須)
providerstringセカンダリのリンク済みアカウントの IDプロバイダー名 (例: google-oauth2)
user_idstringセカンダリのリンク済みアカウントの ID (例: 123456789081523216417 の ` の後の部分
インスタンスに複数のプロバイダーのユーザーがいる場合は、プロバイダー名を指定するために、user_id 文字列の前に [connection_name]| を含めることもできます (例: "user-id": "google-oauth2|123456789081523216417") 。`

レスポンス例

[
  {
    "connection": "Initial-Connection",
    "user_id": "5457edea1b8f22891a000004",
    "provider": "auth0",
    "isSocial": false,
    "access_token": "",
    "profileData": {
      "email": "",
      "email_verified": false,
      "name": "",
      "username": "johndoe",
      "given_name": "",
      "phone_number": "",
      "phone_verified": false,
      "family_name": ""
    }
  }
]

プライマリアカウントのJWTを使用する

アカウントのリンクを解除するには、認可にプライマリアカウントの を使用して、Management API の ユーザーアカウントのリンク解除エンドポイント を呼び出します:

update:users スコープを持つアクセストークンを使用する

2 つ以上のユーザーアカウントのリンクを解除する必要がある場合は、update:users スコープを持つ Management API アクセストークン を使用して、Management API の ユーザーアカウントのリンク解除エンドポイント を呼び出します。
function unlinkAccount(secondaryProvider, secondaryUserId) {
  var primaryUserId = localStorage.getItem('user_id');
  var primaryAccessToken = localStorage.getItem('access_token');

  // プライマリユーザーのアクセストークンをベアラートークンとして使用して、リンク解除対象のアカウントを識別します。
  // セカンダリユーザーのユーザーIDを使用して、プライマリアカウントからリンク解除するユーザーを識別します。

  $.ajax({
    type: 'DELETE',
    url: 'https://' + AUTH0_DOMAIN +'/api/v2/users/' + primaryUserId +
         '/identities/' + secondaryProvider + '/' + secondaryUserId,
    headers: {
      'Authorization': 'Bearer ' + primaryAccessToken
    }
  }).then(function(identities){
    alert('unlinked!');
    showLinkedAccounts(identities);
  }).fail(function(jqXHR){
    alert('Error unlinking Accounts: ' + jqXHR.status + ' ' + jqXHR.responseText);
  });
}
  1. セッション内のユーザーを、新しいアイデンティティの配列 (各要素は個別のユーザーアカウントを表します) で更新します。
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn();
const Auth0Client = require('../Auth0Client');
const express = require('express');
const router = express.Router();
...
router.post('/unlink-accounts/:targetUserProvider/:targetUserId',ensureLoggedIn, (req,res,next) => {
  Auth0Client.unlinkAccounts(req.user.id, req.params.targetUserProvider, req.params.targetUserId)
  .then( identities => {
    req.user.identities = req.user._json.identities = identities;
    res.send(identities);
  })
  .catch( err => {
    console.log('Error unlinking accounts!',err);
    next(err);
  });
});
  1. update:users スコープを持つ Management API アクセストークン を使用して、Management API v2 の ユーザーアカウントのリンク解除エンドポイント を呼び出します。

詳細