[英]How to override Symfony2 Login for captcha control?
First of all; 首先;
Adding Captcha to Symfony2 Login Page 将Captcha添加到Symfony2登录页面
I saw above conversation but this not exactly what i want. 我看到上面的谈话,但这不完全是我想要的。 I just want to check if captcha is false right before authentication.
我只是想在验证之前检查验证码是否为假。
And no, i don't want to use a bundle for this. 不,我不想使用捆绑包。
I need to know, when symfony2 does security login events? 我需要知道,当symfony2执行安全登录事件时?
Diagram: 图:
Login form submit -> check captcha -> check parameters -> do authentication. 登录表单提交 - >检查验证码 - >检查参数 - >进行验证。
Any idea? 任何想法?
I get it work with below. 我得到它与下面的工作。
<?php
namespace CS\UserBundle\Listener;
use Symfony\Component\Security\Core\Exception\BadCredentialsException;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
class LoginListener
{
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
$request = $event->getRequest();
$captcha = $request->request->get('captcha');
if(!empty($captcha) && $captcha !== $request->getSession()->get('captcha')) {
throw new BadCredentialsException('Doğrulama Kodu Yanlış!');
}
}
}
Service (yml) 服务(yml)
services:
cs_user.login_listener:
class: CS\UserBundle\Listener\LoginListener
tags:
- { name: kernel.event_listener, event: security.interactive_login }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.