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.
Put a container in your form and confirm the token on your server. Most visitors see a tick and nothing else.
<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.
| Attribute | What it does |
|---|---|
data-sitekey | Required. The key from the console. |
data-action | A label, returned as-is by siteverify. Use it to tell a login apart from a signup. |
data-theme | auto, light or dark. |
data-size | normal or compact. |
data-lang | en or zh-CN. Follows the page language when unset. |
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");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.
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.
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.
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.
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.
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.