Я интегрировал reCAPTCHA с помощью Guzzle Client следующим образом:
Validator::extend('recaptcha', function ($attribute, $value, $parameters, $validator) {
$client = new Client();
$response = $client->post(env('RECAPTCHA_VERFIY_URL'), [
'form_params' => [
'secret' => env('RECAPTCHA_SECRET_KEY'),
'response' => $value
]
]);
$body = json_decode((string)$response->getBody());
return $body->success;
});
Тогда в моих правилах проверки у меня есть:
'g-recaptcha-response' => 'required|recaptcha'
Это работает нормально, однако проблема, с которой я сталкиваюсь, заключается в том, что если reCAPTCHA был отмечен галочкой и проверен, и я пытаюсь повторно отправить форму (например, если первоначальная отправка содержала ошибки), я получаю "ложный" ответ. Пользователь не может пометить флажок.
Как я могу справиться с ситуацией, когда мне нужно повторно отправить reCAPTCHA? Я отправляю и проверяю формы через AJAX.