电子邮件验证后如何使FOS User Bundle登录用户?

时间:2018-11-27 10:14:32

标签: symfony fosuserbundle

输入登录详细信息后,FOS User Bundle发送确认电子邮件。信函中的链接仅使帐户处于活动状态,但不强制其登录。如何强制FOSUB通过电子邮件验证登录用户?

1 个答案:

答案 0 :(得分:1)

您需要创建一个eventListener 的实现:

use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\UserEvent;

之后,您需要创建要使用的类

class RegistrationConfirmListener implements EventSubscriberInterface

并特别覆盖某些方法

 public function onRegistrationConfirm(GetResponseUserEvent $event)
    {
        $url = 'use your route to generate the url if you wanna redirect him to login area after cofirm or confimed ' ;

        $event->setResponse(new RedirectResponse($url));
    }

注意:请注意确认和确认之间的区别

,您最后一步是要在yml服务上为$ url变量指定要使用的路由 但是您可以在security.yml上使用任何受保护的路由(如果他是受保护的,则是主要路径),这将使他直接进入登录区域。