У меня есть особый вариант использования, который я не могу решить. Когда пользователь нажимает Facebook Connect и находит похожий адрес электронной почты в моей БД. Я хочу спросить пользователя, принадлежит ли ему учетная запись.

Если ответ положительный, ему необходимо подключиться к своей учетной записи, а затем добавить Facebook ID в базу данных.

Если ответ отрицательный, я создаю нового пользователя в БД и вхожу в систему.

Я не нахожу лучшего способа сделать это. Кто-нибудь может мне помочь ?

4
JeremyP 23 Янв 2013 в 16:08
Я реализовал поставщика facebook и в методе LoadByUsername. Когда он обнаруживает, что электронная почта существует, я пытаюсь передать данные контроллеру. Не знаю, лучший ли это способ.
 – 
JeremyP
24 Янв 2013 в 13:55

1 ответ

Лучший ответ

В контроллере вы можете проверить, существует ли электронная почта в БД или нет, используя пользовательский менеджер пакета fos.

$user = $this->get('fos_user.user_manager')->findUserByEmail($email);

После подтверждения пользователя вы можете использовать реализованный провайдер facebook для выполнения необходимых действий.

Между, у меня к вам вопрос,

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

Как создать нового пользователя с таким же адресом электронной почты (при условии, что адрес электронной почты уникален)?

3
Venu 24 Янв 2013 в 15:01
Я уже проверяю, существует ли электронное письмо, но в моем случае проблема возникает, когда я хочу спросить, принадлежит ли учетная запись пользователю, который пытается подключиться.
 – 
JeremyP
24 Янв 2013 в 22:10
Почему вы хотите подтвердить выигрыш? поскольку пользователь уже подтвердил свой адрес электронной почты на Facebook. Я бы проигнорировал этот шаг. кстати, в чем проблема?
 – 
Venu
25 Янв 2013 в 07:59