FOS用户捆绑包从登录中获取POST数据


FOS User Bundle get POST Data from Login

我正在尝试将新的Google recatcha集成到FOS用户捆绑登录中。

我已经成功地覆盖了发生loginAction()的登录模板和SecurityController表单FOS。

我面临的问题是,我无法访问控制器中任何位置的登录表单中的发送POST数据。我在loginAction()checkAction()中尝试了它,但它们的请求中都没有POST数据。

因此,我猜测有一个服务、侦听器或其他东西会进行重定向或其他操作,从而导致POST数据丢失。

我在哪里可以访问将从登录表单发送到服务器的POST数据?

喝了一杯咖啡后,我在源代码中找到了答案,并重新思考了这个问题。

您可以使用侦听登录事件的侦听器访问从登录表单发送的数据。这是我在服务中配置的侦听器。yml

project.LoginListener:
    class: namespace'Listener'LoginListener
    arguments: [@doctrine,@session,@security.context,@project.someService]
    tags:
        - { name: kernel.event_listener, event: security.interactive_login, method :onSecurityInteractiveLogin }

在监听器中,您可以很容易地访问请求的参数包中发送的数据。可以通过侦听器中给定的事件访问请求。