What recognition hangs on
| Verified as | Recognized by | How long it lasts |
|---|---|---|
| Account | A phone or email (optionally your external id) | Permanent — survives new devices, new browsers, cleared cookies |
| Guest | An anonymous identifier in the browser | Until the identifier is cleared, or the guest record rolls off the pool |
Designing for the return trip
- Re-run the same call. Send returning users through the same
vycheck()orinitializeentry point. A recognized human passes through quickly instead of starting over. - Bind an identity if they’ll come back. If you expect repeat visits, verify them as an account by attaching a phone, email, or external id. It’s the difference between “recognized forever” and “recognized until they clear cookies.”
- Confirm server-side every time. Recognition still produces a fresh token each trip — always confirm it on your backend before granting access.
Guests intentionally re-verify more often than account holders — see
Accounts vs guests for why, and when to
prefer one over the other.