2015-04-10 5 views
6

Ich erstelle Client-Server-REST-Anwendung. Client-Seite basiert auf Angular, während Server PHP ist (nicht, dass es irgendwie wichtig ist).Client Server REST API-Captcha-Implementierung

Was ich frage mich, ob es irgendwelche Best Practices, gute Beispiele für Captcha-Implementierung in diesem Fall? Captcha würde für die Benutzerregistrierung usw. verwendet werden.

Ich bin nicht auf bestimmte Bibliotheken beschränkt, die einzige Anforderung ist, dass es keine Aufrufe auf Servern von Drittanbietern auf Client-Seite (js Bibliotheken gehostet auf Servern von Drittanbietern oder req API geben kann Schlüssel usw.).

dank

Antwort

10

Wenn Google Captcha einen Benutzer genehmigt, es bietet Ihnen einen Token.

So diesen Kontext vorstellen. Benutzer ist im Begriff, zu speichern, und verwendet das Captcha, das Captcha macht seine Geschäfte, bis Benutzer zu genehmigen und gibt Ihnen ein Token, es ist alles, was zählt.

Wenn Sie einen „vorläufigen“ Fluss von Anfragen für diese sehen wollen.

  1. Benutzer vor der Registrierung übergeben Captcha, das Captcha gibt Ihnen ein Token im Frontend.
  2. Benutzer klickt auf Speichern, Sie erhalten im Back-End die Formulardaten und das Captcha-Token. Sie fragen, googeln durch die API, ist das Token echt? Wenn sie ja sagten, speichern Sie das Formular, wenn Google es irgendwie nicht erkennt, geben Sie einen Fehler zurück.
  3. Front-End für Erfolg oder Fehler hören und welche Art von Fehler. Wenn Fehler ein Captcha ist, erzwinge eine Wiederholung, erhalte ein neues Token.
  4. Backend erneut die Formulardaten und das neue Token empfangen und erneut prüfen.
0

Googles neue-ish reCaptcha ist ziemlich glatt. Sie haben mehrere leicht verständliche Beispiele und Anwendungsszenarien.

https://www.google.com/recaptcha/intro/index.html

Edit: Um Ihre spezifische Frage, wie dies in einer RESTful Anwendung zu implementieren, würde ich zwei Dateien machen. Eine wäre eine öffentlich zugängliche Datei wie index.php und die andere wäre eine Backend-Datei, die die privaten Informationen enthalten würde.

kopiere ich könnte/paste meines zuvor geschrieben, wie zu hier, oder ich könnte einfach zu the article I wrote 2 months ago verknüpfen.

+0

Ich habe nicht wirklich brauchen Beratung für Captcha-Bibliothek, mehr Beratung, wie es in Client-Server-Rest-Umgebung zu implementieren. –

0

Sie können einen Blick auf Google-recaptcha haben. Sein Winkel Implementierung ist hier

vcRecaptcha

+1

Ich brauchte nicht wirklich einen Ratschlag für die Captcha-Bibliothek, mehr Ratschläge, wie man es in der Client-Server-Ruheumgebung implementiert. –

+0

@VladimirCvetic Wie bei Ihrer Frage "Was frage ich mich, wenn es irgendwelche Best Practices gibt, gute Beispiele für Captcha-Implementierung in diesem Fall?" Sie wollten nur etwas gutes Captcha.So gab ich den Namen sowie Link dafür. Wenn Sie den Link öffnen, finden Sie eine Demo und ein Beispiel. Und wenn Sie den ganzen Code wollen, dann ist stackoverFlow nicht der richtige Ort. Denn stackoverflow geht nicht darum Code zu geben/bereitzustellen. – Anita