Persist shared auth config in DB
Add ncue_app_config and /api/config/auth endpoints, and hydrate Auth0 config from the server so other browsers don't see the setup modal. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
29
script.js
29
script.js
@@ -493,6 +493,34 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function hydrateAuthConfigFromServerIfNeeded() {
|
||||
const cfg = getAuthConfig();
|
||||
const hasLocal = Boolean(cfg.auth0.domain && cfg.auth0.clientId && cfg.connections.google);
|
||||
if (hasLocal) return true;
|
||||
try {
|
||||
const r = await fetch(apiUrl("/api/config/auth"), { cache: "no-store" });
|
||||
if (!r.ok) return false;
|
||||
const data = await r.json();
|
||||
if (!data || !data.ok || !data.value) return false;
|
||||
const v = data.value;
|
||||
const auth0 = v.auth0 || {};
|
||||
const connections = v.connections || {};
|
||||
const allowedEmails = Array.isArray(v.allowedEmails) ? v.allowedEmails : [];
|
||||
const domain = String(auth0.domain || "").trim();
|
||||
const clientId = String(auth0.clientId || "").trim();
|
||||
const google = String(connections.google || "").trim();
|
||||
if (!domain || !clientId || !google) return false;
|
||||
saveAuthOverride({
|
||||
auth0: { domain, clientId },
|
||||
connections: { google },
|
||||
allowedEmails,
|
||||
});
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function currentUrlNoQuery() {
|
||||
// Auth0 callback 후 URL 정리용
|
||||
const u = new URL(location.href);
|
||||
@@ -1352,6 +1380,7 @@
|
||||
async function main() {
|
||||
initTheme();
|
||||
wire();
|
||||
await hydrateAuthConfigFromServerIfNeeded();
|
||||
await initAuth();
|
||||
state.baseLinks = await loadBaseLinks();
|
||||
state.baseOrder = new Map(state.baseLinks.map((l, i) => [l.id, i]));
|
||||
|
||||
Reference in New Issue
Block a user