fix(auth): refresh Auth0 config from server every load to clear stale localStorage domain
Made-with: Cursor
This commit is contained in:
59
index.html
59
index.html
@@ -753,10 +753,35 @@
|
||||
return pathname;
|
||||
}
|
||||
|
||||
function buildAuthConfigBase() {
|
||||
const cfg = window.AUTH_CONFIG && typeof window.AUTH_CONFIG === "object" ? window.AUTH_CONFIG : {};
|
||||
const auth0 = cfg.auth0 && typeof cfg.auth0 === "object" ? cfg.auth0 : {};
|
||||
const connections = cfg.connections && typeof cfg.connections === "object" ? cfg.connections : {};
|
||||
const adminEmails = Array.isArray(cfg.adminEmails)
|
||||
? cfg.adminEmails
|
||||
: Array.isArray(cfg.allowedEmails)
|
||||
? cfg.allowedEmails
|
||||
: [];
|
||||
return {
|
||||
auth0: {
|
||||
domain: String(auth0.domain || "").trim(),
|
||||
clientId: String(auth0.clientId || "").trim(),
|
||||
},
|
||||
connections: {
|
||||
google: String(connections.google || "").trim(),
|
||||
kakao: String(connections.kakao || "").trim(),
|
||||
naver: String(connections.naver || "").trim(),
|
||||
},
|
||||
adminEmails: adminEmails.map((e) => String(e).trim().toLowerCase()).filter(Boolean),
|
||||
};
|
||||
}
|
||||
|
||||
async function hydrateAuthConfigFromServerIfNeeded() {
|
||||
const cfg = getAuthConfig();
|
||||
const hasLocal = Boolean(cfg.auth0.domain && cfg.auth0.clientId && cfg.connections.google);
|
||||
if (hasLocal) return true;
|
||||
const embedded = buildAuthConfigBase();
|
||||
const fullyInPage = Boolean(
|
||||
embedded.auth0.domain && embedded.auth0.clientId && embedded.connections.google
|
||||
);
|
||||
if (fullyInPage) return true;
|
||||
try {
|
||||
const r = await fetch(apiUrl("/api/config/auth"), { cache: "no-store" });
|
||||
if (!r.ok) return false;
|
||||
@@ -765,6 +790,11 @@
|
||||
const v = data.value;
|
||||
const auth0 = v.auth0 || {};
|
||||
const connections = v.connections || {};
|
||||
const adminEmails = Array.isArray(v.adminEmails)
|
||||
? v.adminEmails
|
||||
: Array.isArray(v.allowedEmails)
|
||||
? v.allowedEmails
|
||||
: [];
|
||||
const domain = String(auth0.domain || "").trim();
|
||||
const clientId = String(auth0.clientId || "").trim();
|
||||
const google = String(connections.google || "").trim();
|
||||
@@ -774,6 +804,7 @@
|
||||
JSON.stringify({
|
||||
auth0: { domain, clientId },
|
||||
connections: { google },
|
||||
adminEmails: adminEmails.map((e) => String(e).trim().toLowerCase()).filter(Boolean),
|
||||
})
|
||||
);
|
||||
return true;
|
||||
@@ -817,27 +848,7 @@
|
||||
}
|
||||
|
||||
function getAuthConfig() {
|
||||
const cfg = window.AUTH_CONFIG && typeof window.AUTH_CONFIG === "object" ? window.AUTH_CONFIG : {};
|
||||
const auth0 = cfg.auth0 && typeof cfg.auth0 === "object" ? cfg.auth0 : {};
|
||||
const connections = cfg.connections && typeof cfg.connections === "object" ? cfg.connections : {};
|
||||
// legacy: allowedEmails -> adminEmails
|
||||
const adminEmails = Array.isArray(cfg.adminEmails)
|
||||
? cfg.adminEmails
|
||||
: Array.isArray(cfg.allowedEmails)
|
||||
? cfg.allowedEmails
|
||||
: [];
|
||||
const base = {
|
||||
auth0: {
|
||||
domain: String(auth0.domain || "").trim(),
|
||||
clientId: String(auth0.clientId || "").trim(),
|
||||
},
|
||||
connections: {
|
||||
google: String(connections.google || "").trim(),
|
||||
kakao: String(connections.kakao || "").trim(),
|
||||
naver: String(connections.naver || "").trim(),
|
||||
},
|
||||
adminEmails: adminEmails.map((e) => String(e).trim().toLowerCase()).filter(Boolean),
|
||||
};
|
||||
const base = buildAuthConfigBase();
|
||||
const over = loadAuthOverride();
|
||||
if (!over) return base;
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user