is(navigator.authentication, undefined, "navigator.authentication does not exist any longer");
isnot(navigator.credentials, undefined, "Credential Management API endpoint must exist");
isnot(navigator.credentials.create, undefined, "CredentialManagement create API endpoint must exist");
isnot(navigator.credentials.get, undefined, "CredentialManagement get API endpoint must exist");
let gAssertionChallenge = new Uint8Array(16);
window.crypto.getRandomValues(gAssertionChallenge);
let unknownCredType = {type: "Magic", id: base64ToBytes("AAA=")};
let unknownCred = {type: "public-key", id: base64ToBytes("AAA=")};
let validCred = null;
// Test with a valid credential
async function test_with_credential() {
let publicKey = {
challenge: gAssertionChallenge,
allowCredentials: [validCred]
};
// Test with an unexpected option. That won't stop anything, and we'll
// fail with NotAllowed just as if we had no valid credentials -- which
// we don't.
async function test_unexpected_option() {
let publicKey = {
challenge: gAssertionChallenge,
unknownValue: "hi"
};
// Test with an unexpected option but a valid credential
async function test_unexpected_option_with_credential() {
let publicKey = {
challenge: gAssertionChallenge,
unknownValue: "hi",
allowCredentials: [validCred]
};
// Test with an unexpected transport on a valid credential
async function test_unexpected_transport() {
let cred = validCred;
cred.transports = ["unknown", "usb"];
// Test with an unknown credential type
async function test_unknown_credential_type() {
let publicKey = {
challenge: gAssertionChallenge,
allowCredentials: [unknownCredType]
};
// Test with an unknown credential
async function test_unknown_credential() {
let publicKey = {
challenge: gAssertionChallenge,
allowCredentials: [unknownCred]
};
// Test with too many credentials
async function test_too_many_credentials() {
let tooManyCredentials = Array(21).fill(validCred);
let publicKey = {
challenge: gAssertionChallenge,
allowCredentials: tooManyCredentials,
};
// Test with an unexpected option and an unknown credential type
async function test_unexpected_option_unknown_credential_type() {
let publicKey = {
challenge: gAssertionChallenge,
unknownValue: "hi",
allowCredentials: [unknownCredType]
};
// Test with an empty credential list
async function test_empty_credential_list() {
let publicKey = {
challenge: gAssertionChallenge,
allowCredentials: []
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.