lfedcm-helpers.js (1256B)
1 async function clearLightweightCredential(origin, id) { 2 let deletePromise = new Promise((resolve) => { 3 let handler = (event) => { 4 if (event.origin == origin && event.data == "deleted") { 5 resolve(); 6 window.removeEventListener("message", handler); 7 } 8 }; 9 window.addEventListener( 10 "message", 11 handler, 12 ); 13 }); 14 let win = window.open(`${origin}/fedcm/support/lfedcm-identity.provider-delete.sub.html?id=${id}`, "_blank"); 15 await deletePromise; 16 win.close(); 17 await navigator.credentials.preventSilentAccess(); 18 } 19 20 async function createLightweightCredential(origin, options) { 21 let createPromise = new Promise((resolve) => { 22 let handler = (event) => { 23 if (event.origin == origin && event.data == "created") { 24 resolve(); 25 window.removeEventListener("message", handler); 26 } 27 }; 28 window.addEventListener( 29 "message", 30 handler, 31 ); 32 }); 33 options.postMessage = true; 34 35 let url = URL.parse(origin); 36 url.pathname = "/fedcm/support/lfedcm-identity.provider-create.sub.html"; 37 for (const [name, value] of Object.entries(options)) { 38 url.searchParams.set(name, value); 39 } 40 let win = window.open(url, "_blank"); 41 await createPromise; 42 win.close(); 43 }