Обработка пользователей, которые существуют, но попробуйте войти через Facebook OAuth / etc - PullRequest
4 голосов
/ 07 мая 2011

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

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

  1. Должен ли я считать его тем же пользователем?
  2. Должен ли я относиться к нему как к новому пользователю?

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

Как другие разрешают этот конфликт, или другие люди просто рассматривают этого пользователя, подключающегося через FB, как новую сущность?

Ответы [ 2 ]

1 голос
/ 07 мая 2011

На экране входа в систему пользователи могут выбрать: вы можете поставить

  • новый пользователь: регистрация через facebook

, поскольку это абсолютно новая учетная запись пользователя, вам просто нужно подключиться к Facebook, запросить разрешение на электронную почту и т. Д.

  • существующий пользователь: войдите по электронной почте

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

Для этого я предполагаю, что вы добавили в таблицу базы данных поле для user_accounts, то есть facebook_user_id или fb_id или user_id и т. Д. Затем на Facebook Connect, получите авторизованный адрес электронной почты, UPDATE table SET fb_id = xxx WHERE email = xx

0 голосов
/ 01 октября 2012

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

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

Если вы поддерживаете несколько внешних аутентификаций (Google OAuth, Facebook и т. д.), то у вас может не бытьпароль, и в этом случае он становится немного хитрее.

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

...