Toolaby Wall

Buyer accounts

How buyers sign in — a link, or Google — and what they can do with their account: change the address, delete it.

A buyer's account lives on your workspace's host, in your own pool of buyers. Signing in is a one-time link by email; Google can sit beside it. The account page is laid out as Clerk lays out a user profile — a rail of sections, one shown at a time — in your brand and the buyer's language:

  • Purchases — what the account owns, one card per tool: a line for each licence, seat, subscription, trial or grant on it, with a sentence behind each; a team licence's seats are handed out under its own line.
  • Payments — Stripe's customer portal (cards, invoices, subscriptions — Stripe's pages, on your account) and every payment the buyer made to you, each with the receipt or invoice Stripe hosts for it. An account has one Stripe customer on your account: every Checkout is made for it, the portal opens on it, and when the buyer changes their address the customer's address changes with it — so a buyer's purchases stay together whatever address they use. A purchase made signed out makes a customer of its own; the account adopts it when the purchase is claimed.
  • Devices — the extensions signed in to the account, each with a sign-out.
  • Account — the address, connected accounts, the language, and deleting the account.

Nothing of this is designed by you: it is Better Auth's flows and Stripe's portal, in your brand.

Sign in with Google

Continue with Google is on your sign-in page from the start, with nothing to set up — as it is on a Clerk development instance: the Wall's own Google client signs buyers in for every workspace, and Google's consent screen names Toolaby, which runs the accounts. Google binds a client to exact redirect URIs and every workspace has its own host, so the Wall's client returns to the Wall's own address and the Wall sends the browser on to the host that started the sign-in; nothing of the checks is skipped.

To put your own name on Google's consent screen — what Clerk asks of a production instance — paste a client of your own under Configure → Sign-in: a Web application client from Google Cloud Console, with the redirect URI the page shows, https://<your buyer host>/api/auth/callback/google (if you later verify your own domain, add that domain's too). The secret is sealed with the platform's key the moment it is saved and never shown again. Remove it and the button stays, through the Wall's client.

A buyer who bought by email and then signs in with Google at the same address gets the same account — Google vouches for the address, so the two are one. Under Account → Connected accounts a buyer connects Google to an account that has none, or disconnects it; disconnecting the only provider is allowed, because the magic link always signs the address in.

Changing the address

On the account page, Change beside the address asks for the new one and sends a confirmation there. Nothing changes until the buyer confirms from that inbox; then the account uses the new address and the old one no longer signs in. Purchases stay with the account: a licence is bound to the account, not to the letters of the address.

Deleting the account

Delete account at the foot of the page sends one confirmation to the account's address; the link in it works for a day. Confirmed, the account is gone: the sign-in, the extensions signed in through it (they stop at their next check), any access you granted it, and every subscription of theirs with you — cancelled at once, no further charge.

A licence bought with the address is a purchase, not the account: it stays in your customers as a licence with no account, detached, and keeps working by its key on the devices that hold it. Your record of the sale is not the buyer's to erase, and their key still is theirs.

Everything the buyer can do here, the developer can see under Customers as before; nothing here needs anything from you.

On this page