Symfony FOSUserBundle 坚持 sf_redirect

Symfony FOSUserBundle Persist sf_redirect

我正在尝试将用户重定向到来自外部源的激活页面。

基本上他们点击我们的 CTA 并请求服务,然后它的工作方式如下:

  1. 未经身份验证的用户点击 CTA
  2. (未登录)用户被防火墙阻止,重定向到 /login
  3. 如果用户登录,他们将被重定向到所请求的正确路由,并且一切都按预期进行。

现在我的问题在于,当未经身份验证的用户没有登录,而是创建了一个帐户时,FOSUserBundle 会自动取消设置 sf_redirect cookie,这反过来会破坏现有的功能。

我想知道是否有办法将 sf_redirect 请求持久保存到 registerAction 上,并在用户完成注册后重定向到正确的位置。

我知道一种方法是连接到 FOS 用户包的 loginController 并将请求的路由持久化到另一个 cookie 参数中,并查找天气是否设置了该参数并重定向(或不重定向) 我只是想知道是否有更清洁/更好的方法来做到这一点?

我设法通过连接到事件并设置 cookie 来解决这个问题,然后我在登录后检查了该 cookie ||注册完成事件被触发,如果它在我允许通过防火墙的 URLS 数组中,我将用户重定向到指定的 URL。