簡體   English   中英

如何覆蓋Symfony2登錄驗證碼控制?

[英]How to override Symfony2 Login for captcha control?

首先;

將Captcha添加到Symfony2登錄頁面

我看到上面的談話,但這不完全是我想要的。 我只是想在驗證之前檢查驗證碼是否為假。

不,我不想使用捆綁包。

我需要知道,當symfony2執行安全登錄事件時?

圖:

登錄表單提交 - >檢查驗證碼 - >檢查參數 - >進行驗證。

任何想法?

我得到它與下面的工作。

<?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ış!');
        }
    }
}

服務(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM