How to implement the "recover account flow"?

The best practices page has this flowchart where a new user (FTUE) may want to use the “recover account” option:

First, I assume account recovery is simply not available for username/password accounts. Correct?
Assumption: There cannot be a password reset because this type of account has no email to send a confirmation link to.

For all other providers, isn’t “recover account” effectively the same process as “sign in with …”, with the only difference that there must not have been a previous anonymous sign in?

Assuming a player doesn’t want to “recover” right away and a new anonymous user is created. Later the player decides to “secure account” and signs in with the existing Google/Apple account, are we going to get a “account already linked” or similar exceptions? How to proceed in such a case?

I specifically wonder about what happens to the progress made as an anonymous user. Should we give the user the option which progress to lose (existing account vs anonymous)?

1 Like

Hi @CodeSmile ,
You are correct in assuming recover account means signing in with an account they have previously used to log in for any ID provider other than anonymous. For username/password if they remember their username and password they can sign back in with the same account. If they can’t remember, there is an admin API that allows game developers (yourself) to change a user’s password.

For the case you described, where a player signs in with an Account with an ID Provider and later signs in with an anonymous account, we recommend that you use different profiles(Manage profiles) for these 2 where they can switch back and forth, if they later want to link their anonymous account with an ID provider and it is already linked you will see the “account already linked” error, at that point you can prompt them to link a different ID provider (if you support it) or link the new anonymous account with the existing account but inform them they will lose access to that previous account, if not avaiable in a separate profile on the device, and you can use the LinkOptions when calling LinkWith APIs to force the link to the new account.

Is “account merging” possible in that type of scenario, e.g. merge Leaderboard results?
(If a user has an account on device A and plays with anonymous sign-in on device B, later authenticates with a known ID on device B.)

1 Like

I see. Thinking of a self-service solution for recovery now by asking the user for his email (optionally) … or maybe security questions.

Good point. I assumed that one could link an account with multiple ID providers but now that you mention it, I see that makes no sense.

Which means a way for the user to unlink an account from X (perhaps no longer in use) in order to link it with Y (new active account) would be a nice self-service feature.