User Experience Stack Exchange is a question and answer site for user experience researchers and experts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I have a web application that is offering registration through a regular registration form (email, password) and facebook connect.

I'm facing a problem that I'm sure lot of other are facing. I'm ending up with duplicated account for the "same" user (using different emails).

case of study:

  • User register with regular login form using -> A new account is created
  • User left the site (and logout - session expires)
  • User come back and user Facebook Connect, the email linked is -> A new account is created
  • User logout
  • User logback in using regular form and
  • User go to profile and click "Link my Facebook Account" -> Facebook information are returned and an existing account with is detected.

How to handle this?

share|improve this question

marked as duplicate by Devin, JohnGB Aug 18 '15 at 9:02

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Hi Maxwell, I am finding your post is more about data integration instead of user experience, even though it may have a bit related to UX. For the UX part, I presume you can connect both accounts quietly without even notifying user. That means next time they login using their email or facebook account, they are taken to SAME account. This is how facebook links multiple logins and you are able to use two different emails but both take you to same account. – Salman Ali Mar 20 '13 at 22:14
@Salman, yes it's data integration issue. But I want to fix it using the best user experience possible. Thanks – maxwell2022 Mar 20 '13 at 23:37
up vote 1 down vote accepted

This is indeed a typical case. I have struggled with some variation of it recently (from user perspective; this time it was a little bit different, as the service allows multiple email addresses to be assigned to one account to mail-in data, but it's very similar anyway).

Just to summarize the assumptions:

  • there is a system that allows linking a bunch of credentials (e.g. multiple email addresses, FBID, LinkedIn login etc.)
  • within this system there is first account created using a unique set of credentials (e.g. email
  • there is second account created using a different unique set of credentials (e.g. FBID)
  • user logs in to the first account using the and wants to link the FBID used in his other account

From the system's perspective these are two different accounts so you just cannot do this automatically. The user has done bad (it's one of his rights, anyway), and there is a need to tidy up. I can suggest two ways out of this:

Option 1: Closing one of the accounts.

This is a simple option, easier to implement but with some downsides, like not preserving user data from one of the accounts. User just needs to close one account to free a set of credentials that was blocked.

Just inform user that it is not possible to link the other set of credentials, as it is already linked to another account. Then suggest logging in to the other account, delete it and come back to the first account to retry merging. The downside is that, once deleted, user will most probably loose all the data stored within that other account.

Option 2: Merging accounts

This option is more complicated but leads to better results as user data is preserved, so from user's point of view it is a cosmetic change.

Inform user again that it is not possible to link the other set of credentials because these are linked to another account. Suggest merging accounts. Give the user a possibility to provide full credentials to the other second account while being logged in as the first account. If the credentials to the second account are correct, user should be able to decide how the accounts should be merged and thus needs to be presented a form (or: wizard) that will help him to do it, containing for example:

  • Which user data - as nickname first name, second name, addresses he wants to use (from the first or second account?)
  • What to do with the data data collected by user (e.g. bookmarks or whatever else) within each of these accounts? (Merge/Keep only 1st account data/Keep only 2nd account data)

It should be followed by a big button [I want these accounts to be merged] and a smaller one saying [No, I have changed my mind]. Of course you need to explain to the user that this operation is irreversible, and tell him which credentials he will be able to log in with now.

share|improve this answer
Thanks for your answer @Dominik, it really help. I was thinking about merging as it makes more sense for me than to have a dead (closed) account. Do you think I have to take in consideration someone who left it's facebook account open in a browser? I mean, to perform the merge, is it just an action button or does it has to send an email to the facebook email address with a link to perform the merge? Just to be sure that the user linking the account is the owner of the facebook account? I'm concern about security but I don't want to add some complex workflow in the application. – maxwell2022 Mar 20 '13 at 23:36
PS: I also allow multiple email addresses. User can add email and then verify it clicking on a verification link received on the corresponding mailbox. – maxwell2022 Mar 20 '13 at 23:41
As far as Facebook integration is concerned, I really don't think sending email is necessary. Remember that user needs to give an active permission to allow the app to gain access to FB account data (such as registered email). Moreover - this is from practice - it might result in dead end situations, as some users have FB account registered with an email address they don't have everyday access to. – Dominik Oslizlo Mar 21 '13 at 5:47
Thanks again for your answer – maxwell2022 Mar 21 '13 at 22:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.