2016-09-02 2 views
0

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


Пример:

  1. А пользователь подписывает с Facebook, но не по электронной почте не был возвращен.
  2. Я создаю в db пользователя с адресом электронной почты и паролем, установленным в null, и запись социального профиля с его идентификатором, токеном и именем поставщика.
  3. , тогда пользователь в следующий раз подписывается электронной почтой и паролем, поэтому я создаю для него новую запись в таблице пользователей.

И теперь у него есть 2 записи для одного и того же человека.

Как я должен иметь дело с этим случаем?

ответ

0

Адрес электронной почты - это единственный способ идентифицировать пользователя. Таким образом, самый простой способ справиться с этим - заставить пользователя предоставить его электронную почту, если он не был возвращен в ответ от Facebook. Вы можете легко выполнить эту проверку и перенаправить пользователя соответственно (на другой просмотр/страницу), чтобы ввести его электронную почту, или даже попросить пользователя добавить дополнительные дополнительные поля. Надеюсь, что это помогает

1

нормально, если электронная почта является недействительной, что, поскольку пользователь использует что-то еще как для facebook Войти (например, номер телефона)

Если электронная почта свойства является пустой вы можете Откат к сообщению об ошибке, или установить FacebookId с идентификатором public_profile и попросить пользователя поместить адрес электронной почты в ваше приложение.

Не используйте электронную почту как первичный ключ;) и не забывайте, у вас есть внутренний логин/пароль для всех пользователей. Facebook Twitter - это еще один способ входа в систему, но не основной механизм.

Смежные вопросы