Kann jemand bitte für mich aufräumen, was die letzte Seite der Recaptcha-Dokumentation sagt, finde ich es außergewöhnlich stumpf.
Hier ist die Dokumentation, die ich nicht verstehe:
Überprüfen der Antwort des Benutzers
Auf dieser Seite wird erläutert, wie die Antwort eines Benutzers auf einen reCAPTCHA überprüft wird Herausforderung durch das Backend Ihrer Anwendung. Wenn ein reCAPTCHA gelöst ist Nach Endbenutzer wird ein neues Feld (g-recaptcha-response) eingefügt HTML. Sie können die Antwort des Benutzers auf drei Arten überprüfen:
g-recaptcha-response-POST-Parameter, wenn der Benutzer das Formular übergibt deine Seite. grecaptcha.getResponse (opt_widget_id) nach dem Benutzer schließt die CAPTCHA-Herausforderung ab. Als String-Argument für Ihre Callback-Funktion, wenn der Datenrückruf im g-recaptcha-Tag angegeben ist Attribut oder der Callback-Parameter in der grecaptcha.render-Methode
API-Anfrage
URL: Ссылка
Wie genau verifiziere ich?
Es gibt drei Möglichkeiten, wie ich die Antwort des Benutzers "verifizieren" kann, also nehmen wir die erste: Es gibt jetzt einen POST-Parameter in der übermittelten Form namens g-recaptcha-response mit etwas Kauderwelsch-Inhalt. Meine Frage ist: Was nun? Prüfe ich einfach, dass es nicht null ist?
Oder soll ich es dann mit der unten genannten API-Anfrage an Google senden und dann deren Antwort prüfen? Das könnte Sinn machen, aber es wäre schön, wenn die Dokumentation es ausspricht, stattdessen heißt es nur 'API Request'. Es wäre auch schön, wenn sie aussprechen, dass der response_string (vermutlich) der Inhalt des g-recaptcha-response-Parameters ist.
Offensichtlich war meine teuere Ausbildung nicht teuer genug, bitte kann jemand nur bestätigen, dass ich die API-Anfrage machen sollte.
Das bringt mich zu dem zweiten Problem: Sie können testen, ob das recaptcha-Widget von der lokalen Maschine funktioniert, aber Sie können die API-Anfrage nicht testen - ich erhalte einen standortübergreifenden Fehler
XMLHttpRequest kann Ссылка nicht laden. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Herkunft '
http://localhost
' ist daher nicht erlaubt.
Kennt jemand eine Möglichkeit, dies zu umgehen, damit Sie Tests machen können?
Nach dem, was Sie sagen, sieht Ihr Hauptproblem darin aus, dass Sie die Antwort des Benutzers im Browser des Benutzers und nicht auf dem Server überprüfen. Stimmt das?
Nur um zu klären, was passiert ist ...
response_string
, die in Ihrem Formular als Feld g-recaptcha-response
verfügbar ist (Sie können es auch mit den anderen beiden Javascript-Methoden erhalten, die sie erwähnen). response_string
zusammen mit all Ihren anderen Formulardaten erhält. Vielleicht ist dieser Beitrag hilfreich, da er genaue Code-Snippets sowohl aus dem Backend als auch aus dem Frontend-Bereich anzeigt:
Php-Code:
%Vor%Tags und Links recaptcha