Php FosUserBundle不带flash消息登录Facebook
若facebook用户是新用户,那个么它可以正常工作,但若用户再次登录facebook,那个么就会出现“用户创建”的闪光消息。 我可以做些什么来阻止通过facebook登录时的flash消息Php FosUserBundle不带flash消息登录Facebook,php,facebook,symfony,facebook-login,fosuserbundle,Php,Facebook,Symfony,Facebook Login,Fosuserbundle,若facebook用户是新用户,那个么它可以正常工作,但若用户再次登录facebook,那个么就会出现“用户创建”的闪光消息。 我可以做些什么来阻止通过facebook登录时的flash消息 public function createUserByFacebook($userProfile, $url=null) { $request = $this->container->get('request'); /*check invites*/ $em
public function createUserByFacebook($userProfile, $url=null)
{
$request = $this->container->get('request');
/*check invites*/
$em = $this->container->get('doctrine.orm.entity_manager');
/* call register service */
$registerService = $this->container->get('fly.user.register.service');
$pwd = $registerService->generateRandomPassword();
/** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
$userManager = $this->container->get('fos_user.user_manager');
$user = $em->getRepository('FlyUserBundle:User')->findOneBy(array('facebookId'=>$facebookId));
if ($url==null) {
$url = $this->router->generate('fly_user_profile_change_email');
}
$response = new RedirectResponse($url);
if (!$user) {
$user = $userManager->createUser();
$user->setEnabled(true);
$user->setEmail($email);
$user->setUsername($email);
$user->setFirstName($firstName);
$user->setLastName($lastName);
$user->setFacebookId($facebookId);
$user->setGender($gender);
$user->setBirthday($birthday);
$user->setMstatus($mstatus);
$user->setPlainPassword(rand());
$userManager->updateUser($user);
}
$dispatcher = $this->container->get('event_dispatcher');
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
return $response;
但是如果我去掉这个
$dispatcher = $this->container->get('event_dispatcher');
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
这将重定向到登录页面,如果您触发该事件并将该常数传递给它,您将获得该闪光消息。如果看不到其余的身份验证代码,很难给出建议。但我觉得你的方法可能有点脱节。你也使用吗?当你说,但如果用户再次登录facebook,你的意思是什么不首先解锁?不。首先解锁后,如果我尝试使用相同的facebook id登录,我会收到相同的flash消息,这是我通过facebook注册时收到的。是的,我也用了硬件包@CruzI并不真正了解您的登录系统,但是为什么不在if中调度事件(并添加重定向)。在if之外(没有用户创建),行为应该是什么?为什么调用名为
createUserByFacebook
的方法,而它们已经存在?这种方法看起来既混乱又混乱。我将首先测试它们是否存在,然后通过createuser方法或auth方法引导它们。