Complete passkey login
const url = 'https://example.com/api/v1/auth/webauthn/authentication/verify';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"response":{}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/auth/webauthn/authentication/verify \ --header 'Content-Type: application/json' \ --data '{ "response": {} }'Consume the challenge, verify the assertion, guard against counter regression, then mint a
session cookie (same contract as password login). Public but only under AUTH=on. On success
the session cookie is set via Set-Cookie and the client navigates.
Request Bodyrequired
Section titled “Request Bodyrequired”object
AuthenticationResponseJSON returned by the browser startAuthentication().
object
Examplegenerated
{ "response": {}}Responses
Section titled “Responses”Authenticated; session cookie set
object
Examplegenerated
{ "verified": true}Missing/expired challenge, unknown credential, or verification failed
object
Error message
Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only
Example
{ "code": "cleanup_failed"}Passkeys require AUTH=on
object
Error message
Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only
Example
{ "code": "cleanup_failed"}WebAuthn RP resolution failed
object
Error message
Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only
Example
{ "code": "cleanup_failed"}