43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
async function clearLightweightCredential(origin, id) {
|
|
let deletePromise = new Promise((resolve) => {
|
|
let handler = (event) => {
|
|
if (event.origin == origin && event.data == "deleted") {
|
|
resolve();
|
|
window.removeEventListener("message", handler);
|
|
}
|
|
};
|
|
window.addEventListener(
|
|
"message",
|
|
handler,
|
|
);
|
|
});
|
|
let win = window.open(`${origin}/fedcm/support/lfedcm-identity.provider-delete.sub.html?id=${id}`, "_blank");
|
|
await deletePromise;
|
|
win.close();
|
|
await navigator.credentials.preventSilentAccess();
|
|
}
|
|
|
|
async function createLightweightCredential(origin, options) {
|
|
let createPromise = new Promise((resolve) => {
|
|
let handler = (event) => {
|
|
if (event.origin == origin && event.data == "created") {
|
|
resolve();
|
|
window.removeEventListener("message", handler);
|
|
}
|
|
};
|
|
window.addEventListener(
|
|
"message",
|
|
handler,
|
|
);
|
|
});
|
|
options.postMessage = true;
|
|
|
|
let url = URL.parse(origin);
|
|
url.pathname = "/fedcm/support/lfedcm-identity.provider-create.sub.html";
|
|
for (const [name, value] of Object.entries(options)) {
|
|
url.searchParams.set(name, value);
|
|
}
|
|
let win = window.open(url, "_blank");
|
|
await createPromise;
|
|
win.close();
|
|
}
|