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 addressgordon_is_best@example.orghas 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 addressgordon_is_best@example.org, then GoToSocial will assume that the two users are the same and just loggordonbrownfanin 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 trygordonbrownfan1. If this is also taken, it will trygordonbrownfan2, 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 originalgordonbrownfan.
I find it to be simple with no possibility of failures ![]()