在firewall / main / form_login的security.yml中我有这个:
default_target_path: after_login
always_use_default_target_path: true
我想创建一个名为after_login但没有路径的路由,但symfony会在登录后将我重定向到主页。
/**
* @Route(name="after_login")
*/
public function afterloginAction()
我希望没有人可以访问此控制器的方法。
是否可以在登录此方法后创建此类路线或其他方式进行重定向?
答案 0 :(得分:2)
我想在会话中添加一些变量,但只能在登录后添加一次。
接近这个的最佳方式是听取security.interactive_login
事件:
default_target_path不适用于此。这只是一个重定向到控制器操作,例如用户配置文件。
使用控制器操作一次,然后通过设置会话密钥使其无法访问将是一个丑陋的黑客。
为此目的阅读https://symfony.com/doc/current/components/security/authentication.html#authentication-events。使用事件监听器会使其自动隐藏在外部世界中。
答案 1 :(得分:1)
@Route无法做到这一点。这里有什么不对的,为什么你想要它?