首页 > 解决方案 > Laravel - reCAPTCHA 重新提交

问题描述

我已经使用 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 提交和验证表单。

标签: laravelrecaptcha

解决方案


推荐阅读