OpenAuth_server/views/src/popup/popup.js

33 lines
863 B
JavaScript

async function getJWT(client_id, hostname) {
hostname = encodeURIComponent(hostname);
client_id = encodeURIComponent(client_id);
const res = await fetch(
`/api/user/jwt?client_id=${client_id}&origin=${hostname}`
).then((res) => res.json());
return res;
}
let acceptPromise;
window.allow = () => acceptPromise();
window.deny = () => window.close();
function start() {
let started = false;
window.addEventListener("message", async (msg) => {
if (!started) {
started = true;
const url = new URL(msg.origin);
document.getElementById("hostname").innerText = url.hostname;
await new Promise((yes) => (acceptPromise = yes));
const res = await getJWT(msg.data.client_id, url.hostname);
msg.source.postMessage(res, msg.origin);
window.close();
}
});
}
start();