curl --request POST \
--url https://{projectId}.frontendapi.corbado.io/v2/me/passkeys/append/finish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"attestationResponse": "{\"type\":\"public-key\",\"id\":\"JM6...J_Q\",\"rawId\":\"JM6...J_Q\",\"authenticatorAttachment\":null,\"response\":{\"clientDataJSON\":\"eyJ...ZX0\",\"authenticatorData\":\"SZY...AAQ\",\"signature\":\"Ni7...YAg\",\"userHandle\":\"dXN...zk5\"},\"clientExtensionResults\":{}}",
"clientInformation": {
"bluetoothAvailable": true,
"clientEnvHandle": "<string>",
"visitorId": "<string>",
"canUsePasskeys": true,
"isUserVerifyingPlatformAuthenticatorAvailable": true,
"isConditionalMediationAvailable": true,
"clientCapabilities": {
"conditionalCreate": true,
"conditionalMediation": true,
"hybridTransport": true,
"passkeyPlatformAuthenticator": true,
"userVerifyingPlatformAuthenticator": true
},
"javaScriptHighEntropy": {
"platform": "<string>",
"platformVersion": "<string>",
"mobile": true
},
"isNative": true,
"webdriver": true,
"privateMode": true,
"clientEnvHandleMeta": {
"ts": 123,
"source": "ls"
},
"nativeMeta": {
"platform": "<string>",
"platformVersion": "<string>",
"name": "<string>",
"version": "<string>",
"displayName": "<string>",
"build": "<string>",
"deviceOwnerAuth": "none",
"isBluetoothAvailable": true,
"isBluetoothOn": true,
"isGooglePlayServices": true,
"isDeviceSecure": true,
"error": "<string>"
}
}
}'
Finishes passkey append for currently logged in user.
curl --request POST \
--url https://{projectId}.frontendapi.corbado.io/v2/me/passkeys/append/finish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"attestationResponse": "{\"type\":\"public-key\",\"id\":\"JM6...J_Q\",\"rawId\":\"JM6...J_Q\",\"authenticatorAttachment\":null,\"response\":{\"clientDataJSON\":\"eyJ...ZX0\",\"authenticatorData\":\"SZY...AAQ\",\"signature\":\"Ni7...YAg\",\"userHandle\":\"dXN...zk5\"},\"clientExtensionResults\":{}}",
"clientInformation": {
"bluetoothAvailable": true,
"clientEnvHandle": "<string>",
"visitorId": "<string>",
"canUsePasskeys": true,
"isUserVerifyingPlatformAuthenticatorAvailable": true,
"isConditionalMediationAvailable": true,
"clientCapabilities": {
"conditionalCreate": true,
"conditionalMediation": true,
"hybridTransport": true,
"passkeyPlatformAuthenticator": true,
"userVerifyingPlatformAuthenticator": true
},
"javaScriptHighEntropy": {
"platform": "<string>",
"platformVersion": "<string>",
"mobile": true
},
"isNative": true,
"webdriver": true,
"privateMode": true,
"clientEnvHandleMeta": {
"ts": 123,
"source": "ls"
},
"nativeMeta": {
"platform": "<string>",
"platformVersion": "<string>",
"name": "<string>",
"version": "<string>",
"displayName": "<string>",
"build": "<string>",
"deviceOwnerAuth": "none",
"isBluetoothAvailable": true,
"isBluetoothOn": true,
"isGooglePlayServices": true,
"isDeviceSecure": true,
"error": "<string>"
}
}
}'
After a user logs in successfully, a session is created and a JWT token is returned.
This token represents the user's authenticated session.
It must be included in the Authorization
header as a Bearer token for all protected endpoints:
Authorization: Bearer <your-token>
The server will validate this token to authorize access.
tbd
Was this page helpful?