Google Recaptcha v3 пример демо

До сих пор я работал с Google Recaptcha v2, но теперь я хочу обновить свое WebApp, используя последнюю версию (v3).

Можно ли кому-нибудь добавить полностью работающий пример Google Recaptcha v3 для базовой формы, поскольку я не могу найти какие-либо рабочие демонстрационные версии?

Я был бы очень признателен.

Большое спасибо.

PS: я использую сервлеты Java на стороне сервера, но не имеет значения, объясняете ли вы с помощью php или чего-то еще.

26
задан Ommadawn 3 September 2019 в 11:04
поделиться

1 ответ

Мы используем recaptcha-V3 только, чтобы видеть качество трафика сайта и использовали его в качестве не блокирования. , Так как recaptcha-V3 не требует, чтобы показать на территории и может использоваться, как скрытый, но Вы должны показать, что recaptcha конфиденциальность и т.д. связывается (как рекомендуется)

Тег script в Голове

<script src="https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render='SITE KEY' async defer></script>

Примечание: «async отсрочивают», удостоверяются не блокирование, которое является нашим конкретным требованием

Кодекс JS:

<script>
    ReCaptchaCallbackV3 = function() {
        grecaptcha.ready(function() {
            grecaptcha.execute("SITE KEY").then(function(token) {
                $.ajax({
                    type: "POST",
                    url: `https://api.${window.appInfo.siteDomain}/v1/recaptcha/score`,
                    data: {
                        "token" : token,
                    },
                    success: function(data) {
                        if(data.response.success) {
                            window.recaptchaScore = data.response.score;
                            console.log('user score ' + data.response.score)
                        }
                    },
                    error: function() {
                        console.log('error while getting google recaptcha score!')
                    }
                });

            });
        });
    };
</script> 

HTML/код CSS:

there is no html code since our requirement is just to get score and don't want to show recaptcha badge.

Бэкенд - Кодекс Laravel:

Route:

Route::post('/recaptcha/score', 'Api\\ReCaptcha\\RecaptchaScore@index');


Class:

class RecaptchaScore extends Controller
{
    public function index(Request $request)
    {
        $score = null;

        $response = (new Client())->request('post', 'https://www.google.com/recaptcha/api/siteverify', [
            'form_params' => [
                'response' => $request->get('token'),
                'secret' => 'SECRET HERE',
            ],
        ]);

        $score = json_decode($response->getBody()->getContents(), true);

        if (!$score['success']) {
            Log::warning('Google ReCaptcha Score', [
                'class' => __CLASS__,
                'message' => json_encode($score['error-codes']),
            ]);
        }

        return [
            'response' => $score,
        ];
    }
} 

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

Ссылка: https://developers.google.com/recaptcha/docs/v3 https://developers.google.com/recaptcha /

1
ответ дан 28 November 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: