Многократный вход через Facebook, Twitter и внутреннюю проблему входа - PullRequest
0 голосов
/ 05 сентября 2011

Я создаю приложение, в которое вы можете войти через Facebook , Twitter или с помощью нашего собственного внутреннего механизма. Проблема заключается в следующем сценарии:

  1. Я открываю приложение и авторизируюсь с помощью Facebook
  2. Я выхожу из системы
  3. Я открываю приложение и авторизируюсь с помощью Twitter

Приведенный выше сценарий приведет к тому, что у меня будет два пользователя в системе. Как предотвратить это, чтобы у меня была одна учетная запись, и не имеет значения, войду ли я с помощью Facebook / Twitter?

Каждый раз, когда пользователь входит в систему через Facebook, я также создаю внутреннюю учетную запись с именем пользователя Facebook и идентификатором Facebook в качестве пароля. То же самое при входе в систему через Twitter я создаю внутреннюю учетную запись с именем пользователя и идентификатором Twitter в качестве пароля.

Мне пришла в голову мысль решить эту проблему:

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

1 Ответ

0 голосов
/ 06 сентября 2011

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

Итак, поток будет выглядеть примерно так:

  1. Новый пользователь прибывает на сайт. Пользователь входит в систему через Facebook oauth2. механизм
  2. Ваш сервер получает свой FB ID и генерирует нового пользователя. в ваших системах. Сохраняет их FB ID против этого пользователя.
  3. Вы подсказываете пользователь, чтобы добавить свои учетные данные Twitter аутентификации. Пользователь входит в систему с Механизм Twitter oauth2
  4. Ваш сервер получает свой твиттер-идентификатор, проверяет, вошел ли пользователь в данный момент приложение. Потому что есть, вы сохраняете твиттер ID против текущий пользователь.

Позже пользователь может выйти из системы, а затем войти в нее с помощью любой службы.

...