在我的应用程序中,我需要能够让用户通过OAuth登录并连接他们的帐户。我正在使用HWIOAuthBundle和FOSUserBundle来完成这个任务。但是有一个问题:当我通过Facebook或诸如此类的方式注册时,User实体会自动创建并持久化到数据库中,并为用户创建一个令牌。
实际上,我需要的是只获取提供程序提供给我的一些数据,并将其映射到尚未持久保存的用户。
发布于 2014-09-03 15:13:27
如果我理解的话,您可以向登录用户添加例如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;
}https://stackoverflow.com/questions/19223718
复制相似问题