Start a registration of WebAuthn credentials for a specified user. This requires an authorized authentication session created by a server side call to /auth-session/start-with-authorization
. If successful, the response will contain a credential_creation_options
field that should be passed in the WebAuthn navigator.credentials.create()
API call. Note that some fields (user.id
and challenge
) in the credential_creation_options
object are base64 encoded and must first be decoded and converted to an array buffer. It is recommended to use the webauthn-json library that handles this.
Active WebAuthn session info
{- "auth_session_id": "string",
- "user": {
- "username": "string",
- "display_name": "string"
}
}
{- "webauthn_session_id": "string",
- "credential_creation_options": {
- "attestation": "none",
- "authenticatorSelection": {
- "authenticatorAttachment": "platform",
- "requireResidentKey": true,
- "residentKey": { },
- "userVerification": "preferred"
}, - "extensions": {
- "appid": "string",
- "credProps": true,
- "hmacCreateSecret": true
}, - "excludeCredentials": [
- "string"
], - "pubKeyCredParams": [
- {
- "alg": 0,
- "type": "public-key"
}
], - "timeout": 0,
- "challenge": "string",
- "user": {
- "id": "string",
- "name": "string",
- "displayName": "string"
}, - "rp": {
- "id": "string",
- "name": "string",
- "icon": "string"
}
}
}
Complete the WebAuthn credential registration, and obtain the authorization code to exchange for user tokens. It's required to provide the webauthn_session_id
that was recieved in the registration start response. Note that some fields (clientDataJSON
and attestationObject
) must be converted from array buffer to base64 strings. If webauthn-json create()
was used this is already taken care of.
Complete WebAuthn session info
{- "auth_session_id": "string",
- "webauthn_session_id": "string",
- "public_key_credential": {
- "id": "string",
- "rawId": "string",
- "response": {
- "clientDataJSON": "string",
- "attestationObject": "string"
}, - "type": "public-key",
- "authenticatorAttachment": "platform"
}, - "double_signed_challenge": "string"
}
{- "credential": {
- "credential_id": "string",
- "public_key": "string"
}, - "auth_code": "string"
}
Start a new webauthn authentication. This requires an authentication session, but it can be created from the client side without authorization by calling /auth-session/start-restricted
. If successful, the response will contain a credential_request_options
field that should be passed in the WebAuthn navigator.credentials.get()
API call. Note that some fields (challenge
and each id
in the allowCredentials
list) in the credential_request_options
object are base64 encoded and must first be decoded and converted to array buffer, it is recommended to use the webauthn-json library that handles this.
Active WebAuthn session info
{- "auth_session_id": "string",
- "username": "string"
}
{- "webauthn_session_id": "string",
- "credential_request_options": {
- "allowCredentials": [
- {
- "type": "public-key",
- "id": "string",
- "transports": [
- "internal"
]
}
], - "rawChallenge": "string",
- "challenge": "string",
- "timeout": 0,
- "rpId": "string",
- "attestation": "none",
- "userVerification": "preferred",
- "extensions": { }
}
}
Complete the WebAuthn credential assertion, and obtain the authorization code to exchange for user tokens. It's required to provide the webauthn_session_id
that was recieved in the authentication start response. Note that some fields in the public_key_credential.response
object must be converted from array buffer to base64 strings (clientDataJSON
, authenticatorData
, signature
and userHandle
). If webauthn-json get()
was used this is already taken care of.
Complete WebAuthn session info
{- "auth_session_id": "string",
- "webauthn_session_id": "string",
- "public_key_credential": {
- "id": "string",
- "rawId": "string",
- "response": {
- "authenticatorData": "string",
- "clientDataJSON": "string",
- "signature": "string",
- "userHandle": "string"
}, - "type": "public-key",
- "authenticatorAttachment": "platform"
}, - "double_signed_challenge": "string"
}
{- "auth_code": "string",
- "credential": {
- "credential_id": "string",
- "public_key": "string",
- "registered_at": "string",
- "last_used": "string"
}
}
Start a new webauthn passkey authentication. This requires an authentication session, but it can be created from the client side without authorization by calling /auth-session/start-restricted
. If successful, the response will contain a credential_request_options
field that should be passed in the WebAuthn navigator.credentials.get()
API call. Note that some fields (challenge
and each id
in the allowCredentials
list) in the credential_request_options
object are base64 encoded and must first be decoded and converted to array buffer, it is recommended to use the webauthn-json library that handles this.
Active WebAuthn session info
{- "auth_session_id": "string"
}
{- "webauthn_session_id": "string",
- "credential_request_options": {
- "allowCredentials": [
- {
- "type": "public-key",
- "id": "string",
- "transports": [
- "internal"
]
}
], - "rawChallenge": "string",
- "challenge": "string",
- "timeout": 0,
- "rpId": "string",
- "attestation": "none",
- "userVerification": "preferred",
- "extensions": { }
}
}
Complete the WebAuthn credential assertion, and obtain the authorization code to exchange for user tokens. It's required to provide the webauthn_session_id
that was recieved in the authentication start response. Note that some fields in the public_key_credential.response
object must be converted from array buffer to base64 strings (clientDataJSON
, authenticatorData
, signature
and userHandle
). If webauthn-json get()
was used this is already taken care of.
Complete WebAuthn session info
{- "auth_session_id": "string",
- "webauthn_session_id": "string",
- "public_key_credential": {
- "id": "string",
- "rawId": "string",
- "response": {
- "authenticatorData": "string",
- "clientDataJSON": "string",
- "signature": "string",
- "userHandle": "string"
}, - "type": "public-key",
- "authenticatorAttachment": "platform"
}
}
{- "auth_code": "string",
- "credential": {
- "credential_id": "string",
- "public_key": "string",
- "registered_at": "string",
- "last_used": "string"
}
}