2013-10-07 2 views
0

В моем приложении мне нужно разрешить пользователям входить в систему и подключать свои учетные записи через OAuth. Я использую HWIOAuthBundle и FOSUserBundle для этого. Но есть проблема: когда я регистрируюсь через Facebook или что-то вроде объекта User, автоматически создается и сохраняется в базе данных, а для пользователя создается токен.HWIOAuthBundle с нетерпением создает пользователей

Мне действительно нужно только получить некоторые данные, которые поставщик дает мне, и сопоставить их с тем, чтобы он сохранялся.

+0

вы могли бы одобрить ответ, если это хорошо? – skler

ответ

0

Если я понимаю, вы хотели бы добавить, например, информацию о Facebook для входа в систему.

Так что вы должны сделать в поставщике, чтобы проверить, что есть подключенный пользователь, а затем добавить информацию:

if (($this->container->get('security.context')->getToken() instanceof AbstractToken) { 
    $loggedUser = $this->container->get('security.context')->getToken()->getUser(); 
    $loggedUser->setFacebookId($fbdata['id']); 

    /* userManager is fos_user.user_manager service */ 
    $this->userManager->updateUser($loggedUser); 

    return $loggedUser; 
}