BG Development


  Reply to this topicStart new topicStart Poll

> reCAPTCHA връща "Timeout or duplicate" (Symfony)
DvDty
  Публикувано на: 06-07-2017, 20:31
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 35
Регистриран на: 22.10.14



Добавих reCAPTCHA-та на google в Symfony 3.3 проект, чрез този bundle -
github.com/EWZRecaptchaBundle.
Това е в config-a ми:
CODE
ewz_recaptcha:
   public_key:  ***********
   private_key: ***********
   locale_key:  %kernel.default_locale%


В UserType:
CODE
use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
// ...
$builder->add('recaptcha', EWZRecaptchaType::class)
//...


В User entity:

CODE
use EWZ\Bundle\RecaptchaBundle\Validator\Constraints as Recaptcha;
//...
/**
* @Recaptcha\IsTrue
*/
public $recaptcha;


И в контролера ми:

CODE
//...
if ($form->isSubmitted() && $form->isValid()) {
           $api_url = "https://www.google.com/recaptcha/api/siteverify?";

           $secret_key = "************";

           $api_key = "&secret=" . $secret_key;

           $g_recaptcha_response = $_POST['g-recaptcha-response'];

           $api_response = "&response=" . $g_recaptcha_response;

           $api_remote_ip = "&remoteip=" . $_SERVER['REMOTE_ADDR'];

           $url = $api_url . $api_key . $api_response . $api_remote_ip;

           $response = json_decode(file_get_contents($url), true);

           var_dump($response);

           exit;


Получавам:

CODE
array(4) {
   ["success"]=> bool(false)
   ["challenge_ts"]=> string(20) "2017-07-06T16:49:56Z"
   ["hostname"]=> string(14) "***domain-name.net***"  
   ["error-codes"]=> array(1) { [0]=> string(20) "timeout-or-duplicate" }
}


Не съм сигурен защо получавам този error. В документацията тук не е включен или описан.

Това мнение е било редактирано от DvDty на 06-07-2017, 20:31
PMEmail Poster
Top
erazor
Публикувано на: 06-07-2017, 22:55
Quote Post



Име: Димитър
Група: Потребител
Ранг: Редовен член

Мнения: 570
Регистриран на: 26.06.07



Не съм го ползвал тоя фреймуорк, но виж си ключовете.
Веднъж дефинираш public_key, private_key, после имаш secret_key после имаш $api_key = $secret_key

Не ми изглежда много наред това.

PMEmail PosterICQ
Top
thrawn
Публикувано на: 07-07-2017, 07:58
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 756
Регистриран на: 17.01.17



Таймаутът очевидно те реже (имаш време на валидност на генерирания отговор). Явно или потребителя бавно ти праща данните или ти бавно ги проверяваш.
Пробвай да засечеш времето което минава от сервиране на страницата до получаване на ключът от гугъл и получаване на отговорът при верификация та).

PMEmail Poster
Top
DvDty
Публикувано на: 07-07-2017, 10:18
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 35
Регистриран на: 22.10.14



QUOTE (erazor @ 06-07-2017, 22:55)
Не съм го ползвал тоя фреймуорк, но виж си ключовете.
Веднъж дефинираш public_key, private_key, после имаш secret_key после имаш $api_key = $secret_key

Не ми изглежда много наред това.

Да, като се замислих, няма логика, да давам ключа в конфигурация, ако после го слагам в онова мазало. Разгледах bundle-а и видях, че той сам проверява, чрез google api-то. Благодаря!
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0