OAuth hosted login: submit MFA challenge
/oauth/mfa-challengeSubmits a TOTP code or recovery code from the hosted MFA-challenge page, identified by the challenge_token issued during login. On successful verification it optionally issues a trusted-device cookie (when remember_device is set and the Environment allows it), mints an authorization code, and redirects to the client's redirect_uri; on failure it re-renders the challenge page with the error and the available factor list. Throttled to 10 requests per minute.
Request body
application/json
challenge_tokenstring Required factorenum Required codestring Required 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
text/html
stringA redirect to the client's `redirect_uri` with `code` and `state` once the sign-in clears
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Rate limit
curl -X POST "https://auth.canopy-io.com/oauth/mfa-challenge" \ -H "Content-Type: application/json" \ -d '{ "challenge_token": "string", "factor": "totp", "code": "string", "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 }'
Content-Type: text/html
<!doctype html>
<html lang="en">
<head>…</head>
<body>
<!-- The hosted page: its form, any error, and the Environment's branding -->
</body>
</html>Tell us how we can improve this guide.