OAuth hosted login: verify a WebAuthn assertion
/oauth/mfa/webauthn/verifyStep 2 of the hosted WebAuthn MFA factor: verifies the browser assertion against the challenge_token. On success it optionally issues a trusted-device cookie, stamps the hosted-session cookie, mints an authorization code, and returns { redirect_to } as JSON for the fetch-driven ceremony to navigate to; on failure it returns 400 with { error }. Throttled to 10 requests per minute.
Request body
application/json
challenge_tokenstring Required responseobject Required The browser-produced AuthenticationResponseJSON assertion.
client_idstring Required redirect_uristring Required response_typestring Required scopestring Required statestring Optional code_challengestring Required code_challenge_methodstring Required noncestring Optional remember_deviceboolean Optional Remember this browser so the next hosted sign-in from it skips the second factor. Honoured only when the Environment's `mfa_trusted_device_days` is above 0 (the default is 0, which disables remembering); the trust rides in the httpOnly `ca_identity_mfa_trusted_device` cookie on Canopy's domain.
Responses
application/json
redirect_to *stringWhere the hosted page navigates next
application/json
error *stringWhat went wrong, for the page to show; `expired` when the session ran out
application/json
error *ApiErrorBodyDto
Rate limit
Returned object
curl -X POST "https://auth.canopy-io.com/oauth/mfa/webauthn/verify" \ -H "Content-Type: application/json" \ -d '{ "challenge_token": "string", "response": {}, "client_id": "string", "redirect_uri": "string", "response_type": "string", "scope": "string", "state": "string", "code_challenge": "string", "code_challenge_method": "string", "nonce": "string", "remember_device": false }'
{ "redirect_to": "string" }
Tell us how we can improve this guide.