Complete passkey registration
const url = 'https://example.com/api/v1/auth/webauthn/registration/verify';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"response":{},"name":"example"}'};
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/registration/verify \ --header 'Content-Type: application/json' \ --data '{ "response": {}, "name": "example" }'Consume the single-use challenge, verify the attestation, and persist the credential for the
authenticated local user. Requires AUTH=on and a real local user.
Request Bodyrequired
Section titled “Request Bodyrequired”object
RegistrationResponseJSON returned by the browser startRegistration().
object
Optional friendly credential name. Defaults to a user-agent-derived name when omitted.
Examplegenerated
{ "response": {}, "name": "example"}Responses
Section titled “Responses”Credential registered
object
Client-safe view of a registered passkey (no key material).
object
Base64URLString credential id.
Example
{ "credential": { "deviceType": "singleDevice" }}Missing/expired challenge 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"}Not an authenticated local user
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"}Duplicate name / passkey already registered / AUTH not 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"}