In some cases, such as when a server has been switched to use OIDC after already using default settings for a while, there may be an overlap between usernames returned from OIDC, and usernames that already existed in the database.
For example, let’s say that someone with username
gordonbrownfanand email address
email@example.com an account on a GtS instance that uses the default sign-in flow.
That GtS instance then switches to using OIDC login. However, in the OIDC’s storage there’s also a user with username
gordonbrownfan. If this user has the email address
firstname.lastname@example.org, then GoToSocial will assume that the two users are the same and just log
gordonbrownfanin as though nothing had changed. No problem!
However, if the user in the OIDC storage has a different email address, GoToSocial will try to create a new user and account for this person.
Since the username
gordonbrownfanis already taken, GoToSocial will try
gordonbrownfan1. If this is also taken, it will try
gordonbrownfan2, and so on, until it finds a username that’s not yet taken. It will then sign the requester in as that user/account, distinct from the original
I find it to be simple with no possibility of failures