Dissociate Social Account from User ID Process
Content
- Overview
- Process Flow
- App Settings
- Social Disconnect User Journey
- API Walkthroughs
- Error Codes
- Revision History
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
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. |