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

FOS User Bundle get POST Data from Login

我正在尝试将新的 Google recaptcha 集成到 FOS 用户包登录中。

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

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

所以我猜测有一个服务、侦听器或其他东西进行重定向或其他东西,以便 POST 数据丢失。

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

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

您可以使用侦听登录事件的侦听器访问从登录表单发送的数据。这是我在 services.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 }

在侦听器中,您可以轻松访问请求参数包中的已发送数据。可通过侦听器中提供的事件访问该请求。