Dissociate Social Account from User ID Process

Content

Overview

This Process defines how a user removes an associated social media account from their ULM User ID.

Process Flow

This table describes the Process functionality at a high level.

Dissociate Social Account from User ID
Actors Frontend user, ULM.
Pre-Conditions The ULM User ID is fully activated with at least one associated social media profile.
  The ULM User ID has least one other sign-in method (another associated account, authN ID + password).
  The user is currently authenticated in ULM.
Basic Flow 1 The user selects the desired social media (e.g., Facebook, Google), and clicks Disconnect.
  2 ULM first verifies the User ID authN options, and then removes the association.
Post-Conditions The ULM User ID is no longer connected to the selected social media provider.
Error Messages Generic "invalid user state" error if the selected social media is the user's only sign-in option (i.e., the user does not have a set authN ID + password, or another social media account, to use for authentication into ULM).
  Generic "invalid provider" error if the social media supplied by the UI is not associated to the User ID.

App Settings

This Process currently has no relevant app settings to configure the Process behaviour.

Social Disconnect User Journey

This flow diagram illustrates the standard user journey using the Dissociate Social Account from User ID Process.

API Walkthroughs

The following section provides guided walkthroughs of the Dissociate Social Account Process, including demonstrations of the various branching paths the Process can take during its execution.

Dissociate Social Account Scenario (User has Single Social Account)

An authenticated user selects to remove a previously associated social account from their User ID. In this scenario, the user only has a single associated account.

Initial Request

The Process Start API initializes the Process:

POST /process/start/socialFederation.DissociateSocialMedia.v1.0
<no body>

Response: Success

The Process quickly looks up the user, and determines the following:

  • The User ID has only one associated social account.
  • The User ID has has at least one verified authN ID and password.

Therefore, the Process does not require any further input from the user. The Process simply removes the association, and returns a HTTP 200 status code.

Response Body
{
    "processId": "9fae09f4-1c3a-4714-a1bc-8e373a212026",
    "processName": "socialFederation.DissociateSocialMedia.v1.0",
    "lastStep": true
}
Response Parameters
Parameter Description
processId Unique identifier for the current instance of this Process.
processName Full name of the Process, including the category and version number.
lastStep Boolean that indicates whether or not this was the last step in the Process.

ULM also sends a notification message, that confirms the dissociation, to the user's primary contact channel.

Dissociate Social Account Scenario (User has Multiple Social Accounts)

Similar to the previous scenario, an authenticated user selects to remove a previously associated social account from their User ID. However, in this scenario, the user only has multiple social accounts associated to their User ID.

Initial Request

The Process Start API initializes the Process:

POST /process/start/socialFederation.DissociateSocialMedia.v1.0
<no body>

Response: Prompt for Account Selection

The Process quickly looks up the user, and determines the following:

  • The User ID has at least one other associated social account

Therefore, the Process prompts the user to select which account they want to remove:

Response Body
{
    "processId": "b6e2a47f-564c-4577-8da2-0aa54c2cf224",
    "processName": "socialFederation.DissociateSocialMedia.v1.0",
    "displayMessage": "Please input required information",
    "parameters": {
        "socialConnection": "String"
    },
    "stepName": "SocialConnectionPrompt",
    "lastStep": false,
    "output": {
        "socialConnections": [
            "facebook:<redacted>",
            "google:<redacted>"
        ]
    }
}
Response Parameters
Parameter Description
processId Unique identifier for the current instance of this Process.
processName Full name of the Process, including the category and version number.
stepName Name of the specific step that the Process is currently on.
lastStep Boolean that indicates whether or not this was the last step in the Process.
displayMessage Optional message that the UI can display to the end user.
parameters Object that specifies the info this Process requires to continue its task.
  socialConnection The social connection to dissociate from the User ID.
output Object that contains data that the client can consume, retain, and use for additional operations.
  socialConnections List of associated social accounts that the user may freely dissociate from their ULM Cloud profile. Associations are identified in the format of the name of the social provider and the unique identifier of the associated account within the social provider, separated by a colon (':').

Note: Social connections contain unique identifiers (typically from the social providers themselves) to indicate which profile is associated, in cases where more than one profile from the same social provider are associated (e.g., a user has two separate Facebook accounts associated to their ULM User ID). In this document, social ID values have been redacted.

Final Request: Remove Selected Account

The user selects their desired social account, and client passes that info to the Process with the Process Step API:

PUT /process/step
{
    "processId": "b6e2a47f-564c-4577-8da2-0aa54c2cf224",
    "parameters": {
        "socialConnection": "google:<redacted>"
    }
}
Request Parameters
Parameter Description
processId Unique identifier for the current instance of this Process.
parameters Data object that contains the data request in the previous Process response.
  socialConnection The social account to dissociate, as selected by the user.
    The association is defined in the format of the social provider and the unique identifier of the association associated account within the social provider, separated by a colon.

Final Response: Success

The Process removes the association, and returns a HTTP 200 status code.

Response Body
{
    "processId": "b6e2a47f-564c-4577-8da2-0aa54c2cf224",
    "processName": "socialFederation.DissociateSocialMedia.v1.0",
    "lastStep": true
}
Response Parameters
Parameter Description
processId Unique identifier for the current instance of this Process.
processName Full name of the Process, including the category and version number.
lastStep Boolean that indicates whether or not this was the last step in the Process.

Error Scenario: User does not have any other authentication method

The Process will not execute if the user does not have at least one authentication method available. This means that the user must have a verified authN ID and password set, or another associated social account.

If the user attempts to invoke this Process with only one associated account as their authentication method, then the Process responds with an HTTP 400 status and ends.

Error Codes

Below is a comprehensive list of potential error codes that may be returned during the execution of this Process.

Common Error Codes

Common Process Error Codes

Process-Specific Error Codes

HTTP Status ULM Business Error Code Description
400 process-terminated-invalid-user-state The user has only one social connection and no set authN ID + password method.
Deleting their only social connection would leave them unable to authenticate. User must set a password or associate another social account before they can remove this one.
400 process-terminated-invalid-provider Invalid social provider - either the provider doesn't exist, or the user did not have a connection to that provider.

Revision History

Version Description
2020.09 Added this topic.