Как предотвратить несколько учетных записей с входом в социальные сети?

Наряду с обычной системой имени пользователя/электронной почты/пароля я хочу иметь кнопки социальных сетей для входа в систему. Но как запретить пользователям создавать несколько учетных записей?

Допустим, кто-то сначала входит в мое приложение через Facebook и делает в приложении действия, которые сохраняются в базе данных, прикрепленной к этой учетной записи. Несколько недель спустя он хочет посмотреть его снова, но нажимает кнопку входа Google+, и теперь кажется, что он потерял все свои данные, поскольку эта учетная запись не «связана».

  • Я мог бы создать возможность для пользователя связать свои учетные записи, но как мне это проверить? Кроме того, мне нужно объединить все данные в базе данных.
  • Возможно, API имеет встроенную функциональность для этого?
  • Есть ли какая-то библиотека социальных сетей, которая справляется с этим?

person Madmenyo    schedule 02.02.2016    source источник
comment
Одинаков ли идентификатор электронной почты пользователя для всех учетных записей социальных сетей?   -  person Pr38y    schedule 02.02.2016
comment
@Pr38y Pr38y Нет, у кого-то может быть другая электронная почта для твиттера и для фейсбука.   -  person Madmenyo    schedule 02.02.2016
comment
Да! Один простой подход — после входа в систему через социальную сеть попросите их создать другой идентификатор (возможно, использовать существующий адрес электронной почты), связанный с учетной записью. Так же, как Line (приложение для чата), один идентификатор может иметь несколько социальных учетных записей.   -  person T D Nguyen    schedule 02.02.2016
comment
@NguyenDoanTung Это хороший обходной путь, но он по-прежнему требует от пользователя дополнительных требований, которые я хотел бы свести к минимуму. Я уже подумал о том, чтобы сначала создать гостевую учетную запись, а затем спросить игрока, хочет ли он продолжать использовать приложение, которое он должен заполнить, чтобы он мог восстановить свою учетную запись. Затем появится ссылка на социальные сети, и с этими учетными записями можно будет войти только в систему, но не зарегистрироваться.   -  person Madmenyo    schedule 02.02.2016


Ответы (3)


Если пользователь использует тот же идентификатор электронной почты, идентификатор пользователя может быть сопоставлен один к одному с идентификатором электронной почты. Когда пользователь входит в систему через facebook, токен аутентификации facebook может быть обновлен в БД. Отдельный столбец потребуется для всех приложений социального входа, из которых пользователю разрешен вход.

В случае другого идентификатора электронной почты можно использовать явную кнопку подключения из другой сети.

Другой вариант — использовать идентификатор устройства вместо идентификатора электронной почты, но тогда вход в систему будет только для этого устройства. Это может вызвать проблемы с синхронизацией данных с другого телефона.

person Pr38y    schedule 02.02.2016
comment
Я предполагаю, что сопоставление их всех с одним и тем же адресом электронной почты было бы правильным способом. Сначала я просто спрошу электронное письмо от пользователя, хочет ли он, чтобы его данные были сохранены. После этого представьте варианты привязки его аккаунта к социальным сетям. - person Madmenyo; 02.02.2016
comment
Для сохранения данных по умолчанию можно использовать первый адрес электронной почты. Если пользователь связывается с другим адресом электронной почты, вы можете запросить предпочтение сохранения учетной записи. Это уменьшит взаимодействие с пользователем. - person Pr38y; 02.02.2016

Ну, я не знаю подходящего ответа, но я могу дать обходной путь, добавить поле в базу данных, назовите его «loginway», скажем, а затем, когда пользователь входит в систему через facebook, вы заполняете поле 1, google+ 2 .. ... и т. д., когда пользователь нажимает кнопку социальной сети, войдите в приложение, проверьте поле, если логин отличается от исходного, сообщите ему, что вы уже вошли в систему через facebook, пожалуйста, снова используйте логин facebook.

вход пользователя в первый раз -> поле входа заполнено 1 -> входит в систему во второй раз, используя G+ -> приложение проверяет путь входа -> он отличается от старого -> пользователь получает окно сообщения, пожалуйста, войдите с помощью первого метода (facebook ).

я надеюсь, что я помог вам, хорошего дня.

person Z. Kiwan    schedule 02.02.2016

В настройках вашего профиля вам нужно указать возможность добавления других учетных записей. Например, если пользователь входит в систему через Facebook, а в качестве другой опции у вас есть Google, то в настройках должна быть возможность добавить учетную запись Google для пользователя. Так что пользователь может связать все учетные записи, а затем может войти в систему из каждой учетной записи социальной сети. Вам нужно хранить все учетные записи в бэкэнде и управлять всеми.

person Arth Tilva    schedule 02.02.2016
comment
Но вопрос, как запретить пользователю регистрировать 2 аккаунта, когда он сначала регистрируется на одном, не привязывает его и потом регистрируется на другом. - person Madmenyo; 02.02.2016