Мне удалось успешно настроить это. Проблема в том, что когда я меняю строки ниже:
//I have set all requested data with the user's username
//modify here with relevant data
$user->setUsername($username);
$user->setEmail($username);
$user->setPassword($username);
в информацию, которую я хочу получить, такую как настоящее имя, адрес электронной почты, мой сгенерированный пароль и т. д., когда я нажимаю кнопку входа в Facebook, скажем, меня снова спрашивают, хочу ли я подключиться к своему локальному тестовому сайту.
Насколько я понимаю, в документации, на которую я ссылался выше, это:
$user = $this->userManager->findUserBy(array($this->getProperty($response) => $username));
это строка, которая проверяет, существует пользователь или нет, и исходный код сам по себе устанавливает либо facebook_id, либо twitter_id (именно так я их сохраняю) в качестве нового < strong>Пользователь *имя пользователя*. Если я изменю строку
$user->setUsername($username); //same as facebook/twitter _id
в
$user->setUsername(setProperUsername()); //sets a proper unique username
Затем каждый раз, когда я пытаюсь войти, я получаю сообщение «Регистрация». Итак, у меня есть общее представление о том, как это работает, но мне трудно понять некоторые вещи:
1. Когда я регистрируюсь в Facebook и вхожу в систему через Twitter, я регистрируюсь снова, не создается никаких известных строк, но отсутствующие поля twitter_id обновляются/заполняются, имя пользователя остается нетронутым. Откуда HWI/FOSUB знает, что я тот же человек, если мои предыдущие данные были из Facebook, а не из Twitter?
2. Если есть глобальный способ узнать, что я тот же человек, какие данные из объекта $response следует использовать в качестве ключа для идентификации уже зарегистрированных пользователей?