Your user signs in with Google today and Apple tomorrow. Is that one account or two?

I was thinking about this because it sounds like such a small product decision, but I don’t think it actually is.

Someone signs up with Google. Six months later they are on their iPhone and tap “Sign in with Apple.” Same person, different identity provider. And if they use Hide My Email, you may not even get the same email address.

So what should the product do?

Creating a new account feels wrong because now their history, billing, settings, or subscription can end up split across two profiles. But automatically linking accounts based on email also feels risky, because now you are assuming that matching email addresses are enough proof that both identities belong to the same person. And then Apple makes it even messier because the emails may not match at all.

I’m curious how people here think about this.

Do you treat each identity provider as a separate account unless the user explicitly links them? Do you auto-link in some cases? Do you have some other rule entirely?

And if you have dealt with this in a real product, what edge case caused the most trouble?

90 views

Add a comment

Replies

Best

This is one of those auth problems that looks simple until billing and account history get involved. I’d lean toward explicit linking.

 Same. I would lean toward explicit linking too, especially once billing or account history is attached.

I would rather make the user re-authenticate the existing account before linking than trust a matching email alone. It adds a little friction, but at least you are proving control over both identities instead of assuming they belong to the same person.

I’d definitely avoid silently creating a second profile. Seeing an empty dashboard after signing in with Apple when all your data is under Google would be incredibly confusing.

 The tricky part is catching that situation without silently linking the accounts either. I wonder if the better UX is to detect that there may already be an account and ask the user to verify the existing login before creating another profile.

Maybe the account should be the primary object, while Google and Apple are simply authentication methods attached to it. That mental model feel cleaner.

 I like this model more. The account holds the history, billing and settings, while Google or Apple are just ways to access it. Then the difficult decision becomes when you have enough proof to attach another login method to that account.

two accounts by default. auto linking is a major security risk.

 Two accounts by default is definitely safer than silently linking them. I would still want the product to notice that there may be an existing account and give the user a way to link it after verifying both identities. Otherwise you solve the security problem and leave the user with the duplicate-account problem.

  Exactly security first but the duplicate account experience matters too. A verification based linking flow feels like the best balance between safety and convenience.

I think the safest UX is probably separate identities by default, with a simple Link Google Apple option inside account settings.

 I would probably do this too. Keep them separate by default, then let the user link Google or Apple from account settings after authenticating both. The only thing I would worry about is whether most users would ever discover that setting before contacting support.

One edge case I’ve seen is people changing their email after signup. Email matching can become unreliable pretty quickly once that happens.

 This makes email matching even shakier. People change their email, Apple can give you a relay address, and different providers may return different addresses for the same person. Using email as the thing that decides identity starts breaking pretty quickly.

The billing angle is what makes this more than an authentication problem. Splitting a subscription between two profiles can turn a small UX issue into a support ticket.

 Billing makes the duplicate-account route much harder to dismiss as a minor UX issue. Once one account owns the subscription and the other owns the new session, support has to figure out which profile should own what before they can even merge anything.

A visible list of connected login methods could help a lot. Users could immediately see whether Google, Apple, or another provider is attached to their account.

 I would like this as a user. If account settings showed Google and Apple as connected login methods, it would also make the mental model much clearer. One account, multiple ways to sign into it.

I’d be especially careful with enterprise accounts. An accidental identity link there could have much bigger consequences than lolsing a few personal settings.

 Enterprise accounts make this much more serious. Now the identity can be tied to an organisation, roles and access to company data. A wrong link there can give someone access to far more than an old subscription or a few saved settings.