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

时间:2015-04-10 07:35:39

标签: php symfony fosuserbundle

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

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

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

所以我猜测有一个服务,监听器或其他做重定向或其他事情的东西,以便POST数据丢失。

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

1 个答案:

答案 0 :(得分:0)

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

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

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