PasskeyBase

TRY IT. THEN MAKE IT YOURS.

Four stacks.
One familiar sign-in.

Start with an app that already has password accounts. Add PasskeyBase as another sign-in option while keeping your own users and sessions.

PASSKEYBASE QUICKSTART

Node.js

Local password accounts, server sessions and a hosted passkey enrollment adapter.

PASSKEYBASE QUICKSTART

React SPA

A React interface with a small Node backend that owns accounts and sessions.

PASSKEYBASE QUICKSTART

Go

Standard net/http handlers, durable local accounts and the Go login SDK.

PASSKEYBASE QUICKSTART

C# / ASP.NET Core

Local password accounts, Microsoft OIDC middleware and a protected app cookie.

Your first visit

  1. Open a demo and choose Continue with a passkey. With no passkey on this device, it offers to create your account with one. The application owns the account; PasskeyBase holds the passkey.
  2. Sign out and choose Continue with a passkey again to sign back in. In current Chrome and Safari the prompt opens on the demo page itself; other browsers use a hosted passkey window.
  3. Signed in, choose Add another passkey for your other devices or a security key. Password accounts work too: create one, then add a passkey to it.

Each app owns a separate account database. Passkey enrollment binds a verified provider identity to that app's existing user; matching email addresses never link accounts.

Your application keeps control

The samples retain their own user IDs, password hashes and sessions. React includes a small backend. Client secrets and OAuth tokens stay server-side; browsers use protected application cookies.

Hosted passkey login supports a top-level popup and a same-tab option. Browser passkey selection and biometric or PIN confirmation remain with the authenticator. No authentication iframe is required.

Build your own version

Each download includes the sample, its SDK source, tests, a Dockerfile and setup instructions. Extract the archive and open passkeybase/quickstarts/<language>/README.md. Register your own application, set its exact callback URL and fill in the private environment configuration.

JavaScript archives include a workspace lockfile for frozen installation. No working secrets are included. React’s backend, like the other server samples, holds its confidential client secret.