Услуги единого входа (facebook, twitter, linkedin): как объединить аккаунты - PullRequest
4 голосов
/ 28 июля 2011

Проблема, которую я вижу со службами единого входа, состоит в том, что если вы входите один раз с помощью Facebook, один раз с помощью Twitter и один раз с помощью LinkedIn - у вас есть три разных аккаунта.Все было бы хорошо, если бы Twitter давал адрес электронной почты.Так как же это исправить?

1 Ответ

4 голосов
/ 27 августа 2011

У меня та же проблема, и я надеялся, что умные люди на SO найдут элегантное решение. Все, что я могу думать, это:

  1. Пользователь входит в систему через LinkedIn
  2. Проверьте таблицу пользователей, чтобы узнать, есть ли у них учетная запись, использующая их идентификатор LinkedIn
  3. Если нет, спросите их адрес электронной почты, прежде чем войти в систему
  4. Когда у нас есть адрес электронной почты, проверьте, есть ли у них учетная запись, использующая их адрес электронной почты
  5. Если они это сделают, добавьте их LinkedIn ID к этой записи и войдите в них
  6. Если нет, создайте новую запись и войдите в нее

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

Как я уже сказал, элегантно это не так, но это лучшее, что я могу придумать.

...