Symfony FOSUserBundle 持久化 sf_redirect

Posted

技术标签:

【中文标题】Symfony FOSUserBundle 持久化 sf_redirect【英文标题】:Symfony FOSUserBundle Persist sf_redirect 【发布时间】:2019-10-24 17:06:53 【问题描述】:

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

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Symfony FOSUserBundle 持久化 sf_redirect的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2:FOSUserBundle 删除操作错误

Symfony 4:FOSUserBundle:覆盖控制器

Symfony2 多 FosUserBundle

无法自动装配服务 FOSUserBundle,Symfony 3.4

Symfony2 - 使用 FOSUserBundle 进行测试

symfony2:使用 fosuserbundle 登录后使用引用