使用FOSUserBundle登录后如何重写路由?

时间:2018-10-22 17:22:46

标签: php symfony fosuserbundle symfony-3.4

在Symfony 3.4.17上使用FOSUserBundle(dev-master)时遇到问题。

问题是,成功登录后,我没有重定向到想要的位置,并且我找不到如何重写要重定向的路由。

我收到此错误消息:

The _controller value "TICoreBundle:Default:index" maps to a "TI\CoreBundle\Controller\DefaultController" class, but this class was not found. Create this class or check the spelling of the class and its namespace.

我知道我可以在TICoreBundle中创建一个默认控制器,然后使用indexAction进行重定向。

但是我很确定这不是一个优雅的解决方案。

我应该在任何地方重写路线吗?我发现这有点令人不安,因为我在另一个项目中使用了此Bundle时没有任何重定向问题,而且我发现它们之间没有什么不同。

编辑:我通过添加以下内容解决了我的问题:

# app/config/security.yml

form_login:

    default_target_path: after_login_route_name

如此处建议:https://symfony.com/doc/3.4/security/form_login.html

1 个答案:

答案 0 :(得分:0)

最可能的情况是symfony防火墙的配置不正确。

检入配置文件中安全性下的防火墙密钥。在此部分下,您应该为您的表单登录配置一个防火墙(默认值为main-> form_login)。在此之下,您可以具有以下之一:

  • default_target_path:登录后将重定向到的路径
  • always_use_default_target_path:与default_target_path一起使用,这将确保始终将用户重定向到同一页面,而不管他来自哪个页面。
  • use_referer:如果设置为“ true”,则将使用登录后用户用作目标路径的上一页。与ajax调用结合使用时,此选项可能会引起一些问题。

如果在防火墙配置下设置了注释,则用户将自动重定向到“ /”

发布您的symfony安全配置示例,以便我更好地理解此问题。另外,symfony网站上的文档也不错,也许您可​​以从那里https://symfony.com/doc/3.4/security/form_login.html

了解错误之处

希望这会有所帮助,如果不给我更多有关此问题的详细信息,也许我们可以将其解决。

Alexandru Cosoi