Wie validiere ich Google reCAPTCHA v3 auf der Server-Seite mit?

Um einen Google reCAPTCHA v3 auf dem Server-Seite mit PHP zu validieren, musst du folgende Schritte ausführen:

  1. Installiere die GuzzleHTTP-Bibliothek, mit der du HTTP-Anfragen von PHP ausführen kannst: composer require guzzlehttp/guzzle
  2. Füge auf deinem HTML-Formular das reCAPTCHA v3-Widget hinzu, indem du folgendes Skript einfügst:
<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY'></script>
  1. Führe im JavaScript deines Formulars das reCAPTCHA v3-Widget aus und hole dir das Token:
grecaptcha.ready(function() {
    grecaptcha.execute('SITE_KEY', {action: 'action_name'}).then(function(token) {
        document.getElementById('g-recaptcha-response').value = token;
    });
});
  1. Verwende in deinem PHP-Skript die GuzzleHTTP-Bibliothek, um eine POST-Anfrage an die reCAPTCHA-API zu senden und dabei deinen SECRET_KEY und das Token des vorherigen Schritts mitzusenden:
$client = new GuzzleHttp\Client();
$response = $client->post('https://www.google.com/recaptcha/api/siteverify', [
    'form_params' => [
        'secret' => 'SECRET_KEY',
        'response' => $token
    ]
]);
  1. Decodiere die JSON-Antwort der API und überprüfe, ob die Validierung erfolgreich war:
<?php

$result = json_decode($response->getBody());
if ($result->success) {
  // validation was successful
} else {
  // validation was unsuccessful
}

Hinweis: Du musst SITE_KEY und SECRET_KEY durch die entsprechenden Werte für deine Seite ersetzen.