mirror of
https://github.com/vladmandic/sdnext.git
synced 2026-01-27 15:02:48 +03:00
33 lines
816 B
JavaScript
33 lines
816 B
JavaScript
let user;
|
|
let token;
|
|
|
|
async function getToken() {
|
|
if (token === undefined || user === undefined) {
|
|
const res = await fetch(`${window.subpath}/token`);
|
|
if (res.ok) {
|
|
const data = await res.json();
|
|
user = data.user;
|
|
token = data.token;
|
|
log('getToken', user);
|
|
}
|
|
}
|
|
return { user, token };
|
|
}
|
|
|
|
async function authFetch(url, options = {}) {
|
|
await getToken();
|
|
if (user && token) {
|
|
if (!options.headers) options.headers = {};
|
|
const encoded = btoa(`${user}:${token}`);
|
|
options.headers.Authorization = `Basic ${encoded}`;
|
|
}
|
|
let res;
|
|
try {
|
|
res = await fetch(url, options);
|
|
if (!res.ok) error('fetch', { status: res.status, url, user, token });
|
|
} catch (err) {
|
|
error('fetch', { status: res.status, url, user, token, error: err });
|
|
}
|
|
return res;
|
|
}
|