Checkify
開発者ドキュメント

バックエンドで確認します

ブラウザの埋め込みが完了したら、サインアップ、チェックアウト、または保護されたアクションを許可する前に、サーバーはサイト API キーを使用して結果を確認する必要があります。

1。サイトを作成します API キー

ビジネス ダッシュボードで、 開発者を開きます そして、統合するサイトのサイト API キーを作成します。サーバー環境変数にのみ保存します。ブラウザには決して送信しないでください。

2.フォームから参照を読み取ります

埋め込み SDK は、非表示フィールドに request_id を書き込みます (従来の統合では引き続き投票トークンを送信できます。両方とも機能します)。

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

3。 verify

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
}

token Fast__GLO_18__ の例の代わりに request_id.

を送信することもできます

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...

表現例

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...
});

応答処理

フィールド意味
successtrue 検証が完了し、要件が一致したとき
statuscompleted または pending
approved_claimsクレーム Checkify が承認されました。 human_verified: true
signed_result監査証跡用のオプションの署名付きペイロード

セキュリティに関するリマインダー

非表示フィールドを証拠ではなく、信頼できない参照として扱います。アクセスを許可する前に、サーバー上のサイト API キーを必ず確認してください。サインアップやパスワードのリセットなどの 1 回限りのアクションには、 consume: true を使用します。