我使用Guzzle Client集成了reCAPTCHA,如下所示:
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提交和验证表格。