Verify passkey login
curl --request POST \
--url https://aropay.aro.media/api/v1/auth/passkey/verify \
--header 'Content-Type: application/json' \
--data '
{
"credential": {}
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({credential: {}})
};
fetch('https://aropay.aro.media/api/v1/auth/passkey/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://aropay.aro.media/api/v1/auth/passkey/verify"
payload = { "credential": {} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"ok": "<unknown>",
"data": {
"user": {
"id": "<string>",
"email": "jsmith@example.com",
"name": "<string>",
"company": "<string>",
"mustChangePassword": true,
"totpEnabled": true,
"lastLoginAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
}
}{
"ok": false,
"error": {
"code": "challenge_expired",
"message": "The sign-in challenge expired. Start again."
}
}{
"ok": false,
"error": {
"code": "unknown_passkey",
"message": "This passkey is not registered."
}
}{
"ok": false,
"error": {
"code": "account_disabled",
"message": "This account is disabled."
}
}{
"ok": false,
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again shortly."
}
}{
"ok": false,
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}Auth
Verify passkey login
Verify the WebAuthn assertion produced by the authenticator and mint a
session. Requires the challenge cookie set by
POST /auth/passkey/options. A passkey login counts as strong MFA on
its own; no TOTP step follows.
POST
/
auth
/
passkey
/
verify
Verify passkey login
curl --request POST \
--url https://aropay.aro.media/api/v1/auth/passkey/verify \
--header 'Content-Type: application/json' \
--data '
{
"credential": {}
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({credential: {}})
};
fetch('https://aropay.aro.media/api/v1/auth/passkey/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://aropay.aro.media/api/v1/auth/passkey/verify"
payload = { "credential": {} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"ok": "<unknown>",
"data": {
"user": {
"id": "<string>",
"email": "jsmith@example.com",
"name": "<string>",
"company": "<string>",
"mustChangePassword": true,
"totpEnabled": true,
"lastLoginAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
}
}{
"ok": false,
"error": {
"code": "challenge_expired",
"message": "The sign-in challenge expired. Start again."
}
}{
"ok": false,
"error": {
"code": "unknown_passkey",
"message": "This passkey is not registered."
}
}{
"ok": false,
"error": {
"code": "account_disabled",
"message": "This account is disabled."
}
}{
"ok": false,
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again shortly."
}
}{
"ok": false,
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}⌘I