Identity
People sign in with an emailed link or with Google or GitHub. There are no passwords to store, reset or leak. One person has one identity across your apps and a separate membership, with its own role, in each of them.
What Identity does
Magic links and OAuth
Email links that survive inbox scanners, plus Google and GitHub. Your site exchanges a single-use grant for a session with one request.
One identity across products
A user signs in once and joins each app separately, as a customer in one and an admin in another. Open sign-up is a per-app switch.
Organizations and roles
Teams, invitations, custom roles and fine-grained permissions, without writing an access-control layer of your own.
SSO and two-factor
Single sign-on per organization, authenticator codes with recovery codes, and step-up checks before sensitive actions.
Sessions you can see
Short-lived access tokens, rotating refresh tokens, and a list of every session that a user or an admin can revoke.
PasskeysIn preview
Device-bound sign-in as a third option beside links and OAuth.
In your code.
Send a sign-in link. The person lands back on your site with a grant.
await dianthan.auth.sendLink({
email: "ada@example.com",
returnTo: "https://fieldnotes.app/auth/callback",
});
// app/auth/callback/route.ts
const session = await dianthan.auth.exchange(searchParams.get("grant"));
cookies().set("session", session.refreshToken, { httpOnly: true });Better with.
What Identity does once another system is switched on in the same app.
- Billing
Checkout already knows who is paying, and entitlements arrive with the session.
- Flags
Target a flag by role, organization or the plan someone is on.
- Messaging
Message a person, not an address, and respect the preferences they set.
- Data
Records can belong to a user or a team and are filtered to them automatically.
- Models
Every model call is attributed to a signed-in person, so caps and costs are per customer.
Endpoints.
The main routes. The API reference lists every parameter and response.
- POST /v1/auth/magic-link
- GET /v1/auth/oauth/:provider
- POST /v1/auth/grants/exchange
- POST /v1/auth/refresh
- GET /v1/me
- GET /v1/auth/sessions
- POST /v1/organizations
- POST /v1/organizations/:id/invitations
- POST /v1/organizations/:id/roles
- POST /v1/me/mfa/totp/setup
Included in the plan.
Identity is part of every account: free within hard limits, then included in the $29 plan that covers every system and every app.
Included
10,000 monthly active users. Unlimited organizations. SSO for 1 organization.
Beyond that
$0.005 per monthly active user. $20 per extra SSO organization.