auth

Authenticate Passkey

Verify an assertion and set the HttpOnly session cookie.

The session is bound to the identity whose passkey signed, exactly as a password sign-in binds one to the identity that authenticated, so every request it later authenticates resolves the same caller.

A refusal is counted like the other sign-in failures (record_auth_failure) and answered as a 401 by the tenancy error handler. Unlike the password path there is no separate post-failure throttle: this route is throttled unconditionally on the way in, because unlike a password there is no legitimate caller here whose correct credential must never be blocked (a passkey ceremony is one round trip a browser drives, not something a person retries by hand).

Maintenance mode freezes this the way it freezes the password sign-in. The freeze is on starting a session, not on a credential, so a passkey has to answer to it or the switch is bypassable by anybody holding one, which is the whole population it exists to hold off during a redeploy. Refused before the assertion is verified, so a frozen deployment does no crypto and counts no auth failure: nobody failed to authenticate, the gateway declined to try.

post/v1/auth/webauthn/authenticate

Request body

credentialobject required

The browser's PublicKeyCredential assertion, serialized.

Response

Successful Response

active_organization_idstring uuid required

The organization that identity is acting in, which scopes every tenancy surface.

expires_atstring date-time required

When the session cookie stops being accepted.

user_idstring uuid required

The identity this session speaks for.

Changes

Changed in 1 of the 126 revisions of this API.1