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 }
在侦听器中,您可以轻松访问请求参数包中的已发送数据。可通过侦听器中提供的事件访问该请求。
我正在尝试将新的 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 }
在侦听器中,您可以轻松访问请求参数包中的已发送数据。可通过侦听器中提供的事件访问该请求。