Verify

Prove there is a person, without asking them to prove it.

Put a container in your form and confirm the token on your server. Most visitors see a tick and nothing else.

01

In the page

<script src="https://verify.yunzheng.space/v1.js?v=1.3.0" async defer></script>

<form method="post" action="/login">
  <div class="orbit-verify" data-sitekey="ovk_…" data-action="login"></div>
  <button type="submit">Sign in</button>
</form>

The script renders every .orbit-verify container on the page and injects a hidden field named orbit-verify-response into the surrounding form. Create the site key on the Verify page in the console.

AttributeWhat it does
data-sitekeyRequired. The key from the console.
data-actionA label, returned as-is by siteverify. Use it to tell a login apart from a signup.
data-themeauto, light or dark.
data-sizenormal or compact.
data-langen or zh-CN. Follows the page language when unset.
02

On your server

The token in the form field is worth nothing until you confirm it. Confirm it once, server-side, before you act on the submission.

const r = await fetch("https://verify.yunzheng.space/v1/siteverify", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    secret: process.env.ORBIT_VERIFY_SECRET,
    response: req.body["orbit-verify-response"],
    remoteip: req.ip,
  }),
});
const v = await r.json();
// { success, challenge_ts, hostname, action, score, "error-codes": [] }
if (!v.success) return res.status(400).send("verification failed");
Check hostname and action as well as success. A token is only evidence that somebody passed a check — checking those two is what ties it to this form on your site.

A token can be confirmed once. A second confirmation of the same token fails, which is what stops a captured submission from being replayed.

03

What it does not do

  • No cookies, no iframe, and nothing loaded from a third party.
  • No keystrokes and no pointer coordinates are collected.
  • Visitor addresses are never stored in the clear.
  • Nothing that would let one site's visitors be recognised on another.
04

Questions

Will visitors have to click something?

Usually not. The check runs by itself and shows a tick. Where the signals are poor the widget turns into a single checkbox — one click, no image puzzles, ever.

Does it work without JavaScript?

No. The check runs in the browser, so a visitor with scripting disabled cannot complete it. If you must serve those visitors, keep a non-form path for them.

Next

Related

Getting started

How an Orbit account is organised, what lives where in the console, and the shortest path from signing in to serving a name from our network.

DNS hosting

Add a zone, point your registrar at our name servers, and manage records. Includes weighted answers, health-checked records, ALIAS at the apex and zone-file import.

Connect a hostname

Delegate the whole domain, delegate one hostname, or add a CNAME and leave your DNS where it is. What each one costs you and when to pick it.

← All documentation