Sonata Admin + FOS User Bundle - 将验证码添加到登录表单

Sonata Admin + FOS User Bundle - add captcha to login form

我正在寻找一种将验证码添加到 Sonata User Bundle 登录表单的方法(当然还有验证码验证!)。

我找不到任何关于在 Sonata User Bundle 中使用验证码的信息,所以我希望有人已经这样做了,或许可以提供一点帮助?

@编辑

根据 Frankbeen 的回答,我已经扩展了 AdminSecurityController(来自奏鸣曲用户包),它确实具有 loginAction(用于显示登录表单)和表单本身。

不幸的是,验证码没有被检查(我们提交表单后没有调用 loginAction)。这让我想知道用于实际检查提交表单的 controller:action 是什么?也许它是通过某种事件侦听器完成的?

  1. Start reading 来自 a) 在 app/Resources 段落中定义新模板并覆盖 Security/login.html.twig模板.

  2. 遵循 this page,覆盖 SecurityController 并添加您的验证码逻辑。

我个人喜欢 Google Recaptcha. If you want to use that one you could also use the EWZRecaptchaBundle

我相信我找到了解决方案。为了实现我想要的,我只需要在这个答案之后覆盖 UsernamePasswordAuthenticationListener:

Adding Captcha to Symfony2 Login Page