#.net-core #twitter #identityserver4
#.net-core #Twitter #identityserver4
Вопрос:
С помощью .Net Core 3.1 и IdentityServer4 я успешно настроил вход в Twitter.
Однако, если я уже создал учетную запись с тем же адресом электронной почты (независимо от Twitter)… когда я нажимаю войти с помощью Twitter, он перенаправляет меня обратно на внешнюю страницу входа на сервер идентификации со следующим сообщением:
Вы успешно прошли аутентификацию в Twitter. Пожалуйста, введите адрес электронной почты для этого сайта ниже и нажмите кнопку Зарегистрироваться, чтобы завершить вход в систему.
и текстовое поле с моим адресом электронной почты в Twitter, который уже заполнен: [ myemail@mydomain.com ]
Когда я нажимаю Зарегистрироваться, я получаю сообщение об ошибке:
Имя пользователя ‘myemail@mydomain.com ‘ уже занято.
В этом есть некоторый смысл… но было бы действительно неплохо, если бы у меня была возможность подключить вход в Twitter к существующей учетной записи… Есть ли какой-либо способ сделать это?
Ответ №1:
Это зависит от вас во внешнем контроллере.Метод обратного вызова в IdentityServer для обработки сопоставления с существующими учетными записями и создания новых учетных записей для новых пользователей.
Например, смотрите этот код:
// lookup our user and external provider info
var (user, provider, providerUserId, claims) = FindUserFromExternalProvider(result);
if (user == null)
{
// this might be where you might initiate a custom workflow for user registration
// in this sample we don't show how that would be done, as our sample implementation
// simply auto-provisions new external user
user = AutoProvisionUser(provider, providerUserId, claims);
}