Skip to content

Instantly share code, notes, and snippets.

@yackermann
Created November 20, 2024 22:26
Show Gist options
  • Save yackermann/1913470e3616bc5aa6f97023a63f0e88 to your computer and use it in GitHub Desktop.
Save yackermann/1913470e3616bc5aa6f97023a63f0e88 to your computer and use it in GitHub Desktop.
Sample JS polyfill for FIDO UAF
(function() {
// Define the FIDO UAF namespace
window.navigator.fido = window.navigator.fido || {};
window.navigator.fido.uaf = window.navigator.fido.uaf || {};
// Define the UAF interface
window.navigator.fido.uaf = {
/**
* Discover available UAF authenticators.
* @param {function} completionCallback - Called when discovery is successful.
* @param {function} errorCallback - Called when an error occurs.
*/
discover: function (completionCallback, errorCallback) {
// Implementation here
console.log("discover method called");
// Example callback usage
// completionCallback([...]); // Pass discovered authenticators
// errorCallback("Error message"); // In case of an error
},
/**
* Check the policy for a given UAF message.
* @param {object} message - The UAFMessage containing the policy to be checked.
* @param {function} cb - Callback invoked with the result or error.
*/
checkPolicy: function (message, cb) {
// Implementation here
console.log("checkPolicy method called with message:", message);
// Example callback usage
// cb(null, { valid: true }); // On success
// cb("Error message"); // On error
},
/**
* Process a UAF operation.
* @param {object} message - The UAFMessage to process.
* @param {function} completionCallback - Called when processing is successful.
* @param {function} errorCallback - Called when an error occurs.
*/
processUAFOperation: function (message, completionCallback, errorCallback) {
// Implementation here
console.log("processUAFOperation method called with message:", message);
// Example callback usage
// completionCallback({ result: "Success" }); // On success
// errorCallback("Error message"); // On error
},
/**
* Notify about a UAF operation result.
* @param {number} responseCode - Response code for the operation.
* @param {object} uafResponse - The UAFResponse object to notify with.
*/
notifyUAFResult: function (responseCode, uafResponse) {
// Implementation here
console.log("notifyUAFResult called with responseCode:", responseCode, "and uafResponse:", uafResponse);
}
};
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment