- A sign-in token request from your backend: when your agent reaches a Versine sign-in, you send Versine your user’s details and get back a one-time token for that sign-in.
- A browser hook that adds the token to the Versine sign-in request.
- A consent model to verify which sites your users want to allow signing into.
1. Register your assistant
Register an assistant in Console. You get an assistant ID, which platforms see in every sign-in, and a secret:Rotate or revoke your secret
Rotate or revoke your secret
In Console, create a second secret, switch to it, then revoke the old one. You
can also limit the secret to your backend’s IP addresses. Console lists every
sign-in made with your credentials. If a secret leaks, revoke it or contact
security@versine.com.
2. Recognize a Versine sign-in
Tell your agent to use Versine when a site offers it, for example in its system prompt:https://auth.versine.com/authorize?client_id=...&scope=.... Your browser hook
catches that request (step 4).
3. Request a sign-in token
Platforms that follow the setup guide request
openid profile email phone; the URL’s scope parameter says which. Versine
passes on only the requested details and doesn’t check consent. If you leave a
detail out, the platform gets the sign-in without it. Many platforms can’t
create an account without an email.
Show your user which platform they're signing in to
Show your user which platform they're signing in to
GET /v1/sign-ins/preview?url=…, with the same credentials, returns the
platform’s name, logoUrl, termsUrl and privacyUrl, and the requested
scopes. Use these rather than anything on the web page.Report verification
Platforms use verification to decide whether a sign-in can reach an existing account. Versine treats an email as verified for a year afterverifiedAt, and
a phone number for 30 days.
If you haven’t verified a value, leave out its verification object.
4. Add the token to the request
In the browser your agent drives, intercept requests tohttps://auth.versine.com/authorize, including redirects, and add the token as
the Versine-Sign-In header:
browser.onRequest stands for your runtime’s request interception, such as the
Chrome DevTools Protocol’s Fetch domain. On failure, Versine shows an error
page with a Versine-Sign-In-Error header:
Use a code instead of a header
If your agent’s browser can’t add headers, and the platform allows code sign-in, the Versine sign-in page asks for a code instead. Give your agent a tool that takes the page’s address. Your backend callsPOST /v1/sign-ins with
that address as url and "delivery": "code":
