Добавить капчу на странице входа? - PullRequest
0 голосов
/ 03 октября 2019

Я хочу добавить «капчу» на мою страницу входа в систему.

Визуально это работает, независимо от того, подтверждено это или нет, оно ничего не меняет, мы можем подключиться.

Даже еслипользователь не проверяет капчу, он может войти в систему, если учетные данные в порядке. Я не нахожу проблему, у вас есть идея?

Заранее спасибо.

Контроллер:

/**
 * @Route("/connexion", name ="security_login")
 * @param AuthenticationUtils $utils
 * @return Response
 */
public function login(AuthenticationUtils $utils)
{
    if (isset($_POST['submitpost'])) {
        if (isset($_POST ['g-recaptcha-response'])) {
                $secret = 'XXXXXXXXXX';
                $recaptcha = new \ReCaptcha\ReCaptcha($secret);
                $resp = $recaptcha->setExpectedHostname(' recaptcha-demo.appspot.com ')
                    ->verify($_POST['g-recaptcha-response']);
                if ($resp->isSuccess()) {
                    echo 'captcha ok ';
                } else {
                    $errors = $resp->getErrorCodes();
                    echo 'captcha non ok ';
                    var_dump($errors);
                }
            }else{
            var_dump('Captcha non rempli');
        }
    }

    $error = $utils->getLastAuthenticationError();
    $username = $utils->getLastUsername();

    return $this->render('security/login.html.twig', [


        'hasError' => $error !== null,

        'username' => $username,
    ]);
}

Веточка:

    {% extends 'base.html.twig' %}
        {% block body %}
            <head>
               <title>reCAPTCHA demo: Simple page</title>
               <script src="https://www.google.com/recaptcha/api.js" async defer></script>
            </head>
           <h1>Axoblog</h1>

           <form action ="{{ path ('security_login') }}" method="post">
                 <div class="form-group">


                     {% if hasError %}
                     <div class="alert alert-danger">error</div>
                     {% endif %}

                    <input type="text" placeholder="Adresse email" required value="{{ username }}" name="_username" id="email"
                           class="form-control" >
                 </div>

                 <div class="form-group">
                    <input placeholder="Mot de passe " required name ="_password"
                           type ="password" class="form-control">
                 </div>
         <div class="g-recaptcha" data-sitekey="XXXXXXXXXXXXXXX"></div>            
    <div class="form-group">
                     <button type="submit" name="submitpost" class="btn btn-success" style="background:#333645">Connexion</button>
                 </div>
           </form>
{% endblock %}
...