Link or unlink accounts

Account linking/unlinking requires a valid access token (from a previous Authentication or Registration). It is not possible to link one existing user record to another, so the only scenario that needs to be addressed is linking to a Social account.

For linking and unlinking, it will be necessary to first make an API call to the /entity operation to retrieve or to verify the current list of the user’s linked accounts.

$api_call= '/entity'; $params= array( 'access_token'=> $_SESSION['access_token'], // attributes containing user's linked accounts 'attributes'=> '["profiles.domain", "profiles.identifier"]' ); $curl= curl_init(); curl_setopt($curl,CURLOPT_URL,JANRAIN_CAPTURE_URL.$api_call); curl_setopt($curl,CURLOPT_POST,true); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($params)); $api_response= json_decode(curl_exec($curl)); curl_close($curl);

Account link

  1. Authenticate with the social provider to retrieve the social login token. (See Social login configuration guides for instructions.)

  2. Link the social account via the oauth/link_account_native call.

For example:

$api_call= '/oauth/link_account_native'; $params= array( 'client_id'=> JANRAIN_LOGIN_CLIENT_ID, 'flow'=> JANRAIN_FLOW_NAME, 'flow_version'=> JANRAIN_FLOW_VERSION, 'locale'=> 'en-US', 'redirect_uri'=> 'https://localhost', // valid access token 'access_token'=> $_SESSION['access_token'], // social login token obtained from previous step 'token'=> $_POST['token'] ); $curl= curl_init(); curl_setopt($curl,CURLOPT_URL,JANRAIN_CAPTURE_URL.$api_call); curl_setopt($curl,CURLOPT_POST,true); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($params)); $api_response= json_decode(curl_exec($curl)); curl_close($curl);
ResponseOutcome / Next Step
Success (ok)Account is linked.
Social account already exists (unique_violation)Provide a resolution path for this error.

Account unlink

Unlink a social account via the /oauth/unlink_account_native call.

$api_call= '/oauth/unlink_account_native'; $params= array( 'client_id'=> JANRAIN_LOGIN_CLIENT_ID, 'flow'=> JANRAIN_FLOW_NAME, 'flow_version'=> JANRAIN_FLOW_VERSION, 'locale'=> 'en-US', // valid access token 'access_token'=> $_SESSION['access_token'], // identifier value from profiles.[profile].identifier schema attribute 'identifier_to_remove'=> $_POST['identifier'] ); $curl= curl_init(); curl_setopt($curl,CURLOPT_URL,JANRAIN_CAPTURE_URL.$api_call); curl_setopt($curl,CURLOPT_POST,true); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($params)); $api_response= json_decode(curl_exec($curl)); curl_close($curl);
ResponseOutcome / Next Step
Success (ok)Account is unlinked.

Did this page help you?