|
|
- $(function() {
- var form = document.getElementById("add-credential-form");
- var optionsBytes = Uint8Array.from(atob(form.dataset.options), c => c.charCodeAt(0));
- // cbor.js expects ArrayBuffer as input when decoding
- var options = CBOR.decode(optionsBytes.buffer);
-
- function b64(arraybuffer) {
- return btoa(String.fromCharCode.apply(null, new Uint8Array(arraybuffer)));
- }
-
- function requestCredentials() {
- // Hide error & success messages, show the "waiting" message
- $("#name-next").addClass("hide");
- $("#waiting").removeClass("hide");
- $("#error").addClass("hide");
- $("#success").addClass("hide");
-
- navigator.credentials.create(options).then(function(attestation) {
- $("#attestation_object").val(b64(attestation.response.attestationObject));
- $("#client_data_json").val(b64(attestation.response.clientDataJSON));
-
- // Show the success message and save button
- $("#waiting").addClass("hide");
- $("#success").removeClass("hide");
- }).catch(function(err) {
- // Show the error message
- $("#waiting").addClass("hide");
- $("#error-text").text(err);
- $("#error").removeClass("hide");
- });
- }
-
- $("#name").on('keypress',function(e) {
- if (e.which == 13) {
- e.preventDefault();
- requestCredentials();
- }
- });
-
- $("#name-next").click(requestCredentials);
- $("#retry").click(requestCredentials);
-
- });
|