注册 FOSUserBundle 后如何重定向到动态自定义路由



我一直在寻找这个,但找不到答案。

预期行为:

  • 用户进入产品页面
  • 用户想要购买产品,所以他需要登录/注册(使用模态(
  • 用户没有帐户,因此他注册
  • 注册后(没有电子邮件确认(,用户登录并重定向到当前产品页面
  • 用户可以继续结帐等...

此行为适用于登录,在表单中使用 _target_path 参数。

但是,此参数不适用于注册。这有点烦人,我在哪里错过了什么?我正在考虑在注册成功事件上实现侦听器,但不像登录表单那么简单似乎真的很奇怪。

编辑:找到我的解决方案,请参阅下面的我自己的答案

回答那些想知道的人。

TL;DR :注册过程不遵循登录的

感谢@yceruto的评论。

我在REGISTRATION_SUCCESS事件中做了一个快速的监听:

/**
 * @param FormEvent $event
 */
public function redirectOnRegistration(FormEvent $event)
{
    $route = $event->getRequest()->headers->get('referer', $this->router->generate('homepage'));
    $response = new RedirectResponse($route);
    $event->setResponse($response);
}

(如果没有推荐人,我会在主页上重定向(。

在安全设置中,您必须打开引用:

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt|console)|css|images|js)/
        security: false
    main:
        pattern: ^/any_pattern
        anonymous: ~
        form_login:
            login_path: any_pattern_login
            check_path: any_pattern_login
            use_referer: true
        logout: true
        access_denied_handler: app.security.access_denied_handler
        guard:
            authenticators:
                - app.api_authenticator
            provider: api_provider
        logout:
            path: any_pattern_logout
            invalidate_session: true

最新更新