Checkify
Entwicklerdokumentation

Überprüfen Sie in Ihrem Backend

Nachdem die Browser-Einbettung abgeschlossen ist, muss Ihr Server das Ergebnis mit einem Site-API-Schlüssel überprüfen, bevor er die Anmeldung, den Checkout oder eine geschützte Aktion zulässt.

1. Erstellen Sie einen Site-API-Schlüssel

Öffnen Sie in Ihrem Unternehmens-Dashboard Developer und erstellen Sie einen Site-API-Schlüssel für die Site, die Sie integrieren. Speichern Sie es nur in Serverumgebungsvariablen – senden Sie es niemals an den Browser.

2. Lesen Sie die Referenz aus Ihrem Formular

Die Einbettung SDK schreibt ein request_id in Ihr verstecktes Feld (ältere Integrationen übermitteln möglicherweise weiterhin das Umfrage-Token – beide funktionieren).

// Example POST body from your frontend form
{
  "email": "user@example.com",
  "checkify_token": "56a57761-ff5b-42f0-9c97-6c13e223e017"
}

3. Anrufverifizierung

POST https://checkify.me/v1/qr/results/verify
Authorization: Bearer YOUR_SITE_API_KEY
Content-Type: application/json

{
  "request_id": "56a57761-ff5b-42f0-9c97-6c13e223e017",
  "required_claims": ["human_verified"],
  "consume": true
}

Sie können auch token anstelle von request_id.

FastAPI-Beispiel

from checkify_server import Checkify

checkify = Checkify(api_key=os.environ["CHECKIFY_SITE_API_KEY"])

@app.post("/signup")
async def signup(email: str, checkify_token: str):
    result = checkify.verify_human(request_id=checkify_token)
    if not result.get("success") or not result.get("approved"):
        raise HTTPException(status_code=403, detail="Human verification required")
    # continue signup...

Express-Beispiel

import { Checkify } from "@checkify/server";

const checkify = new Checkify({ apiKey: process.env.CHECKIFY_SITE_API_KEY });

app.post("/signup", async (req, res) => {
  const result = await checkify.verifyHuman({
    requestId: req.body.checkify_token,
  });

  if (!result.success || !result.approved) {
    return res.status(403).json({ error: "Human verification required" });
  }

  // continue signup...
});

Antwortverarbeitung

FeldBedeutung
successtrue wenn die Verifizierung abgeschlossen ist und Anforderungen senden übereinstimmend
statuscompleted oder pending
approved_claimsAnsprüche Checkify genehmigt, z.B. human_verified: true
signed_resultOptional signierte Nutzlast für Audit-Trails

Sicherheitserinnerung

Behandeln Sie das ausgeblendete Feld als nicht vertrauenswürdige Referenz, nicht als Beweis. Überprüfen Sie immer den API-Schlüssel Ihrer Website auf dem Server, bevor Sie Zugriff gewähren. Verwenden consume: true für einmalige Aktionen wie Anmeldung oder Passwort-Zurücksetzung.