Веб-сайт с двойным входом с помощью Facebook и / или электронной почты

#php #facebook #email #login #passwords

#php #Facebook #Адрес электронной почты #войти #пароли

Вопрос:

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

Теперь мои вопросы:

  • как правильно управлять обоими логинами? Должен ли я хранить данные пользователя fb в записи, сохраняя при первом входе в систему (в качестве регистрации) их fb_userid в качестве ссылки для использования их данных в моем приложении? Могу ли я получить и сохранить (с пользовательским соглашением, конечно) их электронную почту на Facebook при первом посещении?
  • Что произойдет, если пользователи, зарегистрировавшиеся только по электронной почте, однажды захотят войти в систему с помощью facebook? Создаст ли это новую запись пользователя или мне следует объединить два входа в уникальную запись пользователя?
  • Нужно ли мне устанавливать файлы cookie и сеансы для пользователей fb или нет?

Сейчас я вижу много сайтов, которые используют этот двойной вход, но я так и не понял, как им это удается. В первый раз я думал использовать только для входа в Facebook, но многие люди предположили, что это плохая идея. Что вы думаете?

Спасибо за вашу помощь!

Ответ №1:

у меня то же самое. что я делаю:

в моей таблице пользователей есть: id, facebook_uid, email, пароль

  1. если кто-то подключается — я создаю для него нового пользователя с уникальным идентификатором AI, устанавливаю идентификатор пользователя facebook, адрес электронной почты и генерирую случайный пароль. я отправляю ему пароль по почте.
  2. если кто-то регистрируется — uid facebook равен 0
  3. кто-то пытается зарегистрироваться, и электронная почта уже существует с идентификатором facebook — у него есть пароль в почте или он может использовать забытый пароль и т.д.
  4. кто-то пытается подключиться, а электронная почта уже существует — я использую уже существующую учетную запись:

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

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

РЕДАКТИРОВАТЬ: чтобы отметить, как только пользователь подключился — я устанавливаю параметры входа в сеанс / cookie. я не хочу делать запрос на серверы Facebook при каждом просмотре страницы

Комментарии:

1. похоже, это способ управлять этим. Спасибо за ясность и краткость 😉

2. Из любопытства, вы храните только токен или больше данных? Не обращайте внимания на глупый вопрос, это мой первый php-проект, который не является формой 😉

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