Наше мобильное приложение использует passkey для регистрации и аутентификации без пароля. Это мобильное приложение делает запросы к API, которое я тестирую при помощи Cypress. Через API я могу получить "challenge”, "pubKeyCredParams”, "excludeCredentials”, ”rp" and "user, которые нужны для аутентификатора.
Итоговая цель - выдащить данные от аунтентификатора, а именно, "authenticatorData”,“signature”, "clientDataJSON”.
Нашел вот такой код https://github.com/c...ment-1267934998, показывающий как получить id от аутентификатора и этот id у меня успешно возращается.
Дальше, я так понимаю, нужно добавить креденшены для этого аутентификатораю. Добавляю, как показано ниже и получаю в результате (uncaught exception)Error: An error occurred trying to create the credential
let elliptic = require('elliptic'); let ec = new elliptic.ec('p256'); let keyPair = ec.genKeyPair(); // Generate random keys let privKey = keyPair.getPrivate("hex"); cy.log("privKey p256 "+privKey); cy.log("_AUTHENTICATOR_ID "+_AUTHENTICATOR_ID); Cypress.automation("remote:debugger:protocol", { command: "WebAuthn.addCredential", params: { authenticatorId: _AUTHENTICATOR_ID, credential: { credentialId: Buffer.from("1", 'utf8').toString('base64'), isResidentCredential: false, setAutomaticPresenceSimulation: true, rpId: JSON.stringify(my_rpID), signCount: 1, privateKey: privKey.toString('base64'), } } }).then(() => {});
Уже потратил много времени, но так и не понял причину этого exception. Буду очень благодарен, если подскажете, что я делаю не так или, возможно, существует какой-то другой способ работы с аутентификатором.