Php FosUserBundle不带flash消息登录Facebook

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

若facebook用户是新用户,那个么它可以正常工作,但若用户再次登录facebook,那个么就会出现“用户创建”的闪光消息。 我可以做些什么来阻止通过facebook登录时的flash消息

    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方法引导它们。