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的主要内容,如果未能解决你的问题,请参考以下文章
无法自动装配服务 FOSUserBundle,Symfony 3.4