Linking reuses the same redirect/callback machinery as
Authentication — but it uses a separate set of
endpoints from sign-in. Do not use
authStart() to link.This page is about linking multiple auth providers to one AGG account. If you need to link an
AGG user to your own partner-side user ID, use
Partner External ID Linking.
POST /users/me/link-account/* and finishes with a
short-lived confirm token, so the new provider is bound to the current principal.
The flow
Example: link Google to a wallet account
redirectUrl with a
link_confirm_token query param. Exchange it for the linked account:
React: this is handled for you
If your app is wrapped in<AggAuthProvider> from @agg-build/auth, the confirm step runs
automatically. On mount it reads link_confirm_token from the URL, calls linkAccountConfirm(),
refreshes the user, and strips the token from the address bar — the same handler that finishes
sign-in callbacks.
Email linking
Email uses a magic link instead of an OAuth redirect. The result oflinkAccount is a
magic_link acknowledgement, not a redirect — tell the user to check their inbox:
redirectUrl with a
link_confirm_token, and the same confirm step above completes the link. The confirm call is
bound to the signed-in bearer, so the link must be opened in the browser where the user is still
authenticated.
Collisions
linkAccountConfirm() resolves to { status: "linked" } on first link and
{ status: "already_linked_same" } if that identity was already attached to the same user
(idempotent — safe to retry). If the provider identity already belongs to a different AGG
user, the confirm call rejects with HTTP 409 — catch it and tell the user the account is
already in use elsewhere.
Auto-linking by email
If a user signs in with a provider that carries a verified email (e.g. Google) and another account already exists with that email, the accounts are linked automatically during sign-in — no explicit link step needed.Viewing linked accounts
Wallet-to-wallet linking (SIWE/SIWS) is not supported yet — the signature protocol needs a
principal-binding step before it can be done safely. Only Google, Twitter, Apple, and email can
be linked today.