← ClaudeAtlas

invite-with-passwordlisted

Build an app-owned account UI — your own sign-up/login form and your own password setup and reset — instead of handing users to platform auth pages and platform emails. Use when the app invites people in (addOrgUser / createAppMagicLink) and they must end up with a password they chose: the invitee sets it inside your form (needsInitialPassword + setFusebaseInitialPassword) and signs in with loginFusebaseUser, no 'Trying to reset your password?' email in the middle.
fusebase-dev/fusebase-flow · ★ 9 · Data & Documents · score 77
Install: claude install-skill fusebase-dev/fusebase-flow
# Invite With Password ## When to use this The app owns its account UI: a custom login form, a custom onboarding screen, its own password setup and reset — the user never leaves the app and never sees a Fusebase auth page. Typical asks: "invite my clients into the portal app", "our own branded sign-in", "let them pick a password when they accept the invite". Without this, an invited user has no password they know, so the only way in is the platform's "Trying to reset your password?" email — nonsense for somebody who never registered, and it drops them onto a platform page in the middle of your onboarding. `setFusebaseInitialPassword` is what makes an app-owned form possible: the invitee sets their first password inside the app. The **reset** half of app-owned auth is a different op: `requestFusebaseRestoreKey` mints a restore key without sending the platform email, so the app can send its own branded reset mail — see `fusebase-gate/references/fusebase-auth.md` § Password Restore. This skill covers the first password only. ## Flow Invite → invitee opens the app through the magic link → app shows a **Create your password** form → the account signs in with email + password from then on. No platform email beyond the invite itself. Both pre-provisioning paths — `addOrgUser` (`orgRole: 'client'`, `autoConfirmClientInvite: true`) and `createAppMagicLink` (`addToAccessPrincipals: true`) — create an account holding a **random password the user never learns**, which is why the i