Fix: Attempt to Patch UI Login (Not-Working)

This commit is contained in:
Youwes09
2026-05-19 19:25:43 -05:00
parent 50dd8d7e35
commit b7197a09a7
2 changed files with 42 additions and 35 deletions
+9 -3
View File
@@ -207,7 +207,7 @@ export const uiAuth = {
sessionStorage.setItem(UI_SESSION_KEY, JSON.stringify(_uiSession)); sessionStorage.setItem(UI_SESSION_KEY, JSON.stringify(_uiSession));
sessionStorage.removeItem(TOKEN_KEY); sessionStorage.removeItem(TOKEN_KEY);
}, },
getToken: () => { getToken: () => {
const session = uiAuth.getSession(); const session = uiAuth.getSession();
if (!session) return null; if (!session) return null;
@@ -229,7 +229,7 @@ export const uiAuth = {
_accessTokenBase = stored.base; _accessTokenBase = stored.base;
return _accessToken; return _accessToken;
}, },
setToken: (t: string) => { setToken: (t: string) => {
const existing = uiAuth.getSession(); const existing = uiAuth.getSession();
if (existing?.refreshToken) { if (existing?.refreshToken) {
uiAuth.setSession({ uiAuth.setSession({
@@ -276,7 +276,13 @@ export const uiAuth = {
}; };
export const authSession = { export const authSession = {
clearTokens() { uiAuth.clearToken(); }, clearTokens() {
_refreshPromise = null;
_jwtSettings = null;
_jwtSettingsBase = null;
_jwtSettingsFetchedAt = 0;
uiAuth.clearToken();
},
hasSession(): boolean { hasSession(): boolean {
const mode = store.settings.serverAuthMode ?? "NONE"; const mode = store.settings.serverAuthMode ?? "NONE";
if (mode === "UI_LOGIN") return uiAuth.getSession() !== null; if (mode === "UI_LOGIN") return uiAuth.getSession() !== null;
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import { store, updateSettings } from "@store/state.svelte"; import { store, updateSettings } from "@store/state.svelte";
import { gql } from "@api/client"; import { gql } from "@api/client";
import { authSession, loginUI } from "@core/auth"; import { authSession, loginUI, logout } from "@core/auth";
import { GET_SERVER_SECURITY } from "@api/queries/extensions"; import { GET_SERVER_SECURITY } from "@api/queries/extensions";
import { SET_SERVER_AUTH, SET_SOCKS_PROXY, SET_FLARESOLVERR } from "@api/mutations/extensions"; import { SET_SERVER_AUTH, SET_SOCKS_PROXY, SET_FLARESOLVERR } from "@api/mutations/extensions";
@@ -44,39 +44,40 @@
} }
$effect(() => { $effect(() => {
if (!secLoaded) { secLoaded = true; loadServerSecurity(); } if (!secLoaded) { secLoaded = true; authSession.clearTokens(); loadServerSecurity(); }
}); });
async function loadServerSecurity() { async function loadServerSecurity() {
try { try {
const res = await gql<{ settings: { const res = await gql<{ settings: {
authMode: string; authUsername: string; authMode: string; authUsername: string;
socksProxyEnabled: boolean; socksProxyHost: string; socksProxyPort: string; socksProxyEnabled: boolean; socksProxyHost: string; socksProxyPort: string;
socksProxyVersion: number; socksProxyUsername: string; socksProxyVersion: number; socksProxyUsername: string;
flareSolverrEnabled: boolean; flareSolverrUrl: string; flareSolverrTimeout: number; flareSolverrEnabled: boolean; flareSolverrUrl: string; flareSolverrTimeout: number;
flareSolverrSessionName: string; flareSolverrSessionTtl: number; flareSolverrSessionName: string; flareSolverrSessionTtl: number;
flareSolverrAsResponseFallback: boolean; flareSolverrAsResponseFallback: boolean;
}}>(GET_SERVER_SECURITY); }}>(GET_SERVER_SECURITY);
const s = res.settings; const s = res.settings;
const serverMode = normalizeAuthMode(s.authMode); const serverMode = normalizeAuthMode(s.authMode);
authMode = serverMode; if (serverMode !== "UI_LOGIN") authSession.clearTokens();
authUsername = s.authUsername || ""; authMode = serverMode;
updateSettings({ serverAuthMode: serverMode, serverAuthUser: authUsername }); authUsername = s.authUsername || "";
socksEnabled = s.socksProxyEnabled; socksHost = s.socksProxyHost; updateSettings({ serverAuthMode: serverMode, serverAuthUser: authUsername });
socksPort = s.socksProxyPort; socksVersion = s.socksProxyVersion; socksEnabled = s.socksProxyEnabled; socksHost = s.socksProxyHost;
socksUsername = s.socksProxyUsername; socksPort = s.socksProxyPort; socksVersion = s.socksProxyVersion;
flareEnabled = s.flareSolverrEnabled; flareUrl = s.flareSolverrUrl; socksUsername = s.socksProxyUsername;
flareTimeout = s.flareSolverrTimeout; flareSession = s.flareSolverrSessionName; flareEnabled = s.flareSolverrEnabled; flareUrl = s.flareSolverrUrl;
flareTtl = s.flareSolverrSessionTtl; flareFallback = s.flareSolverrAsResponseFallback; flareTimeout = s.flareSolverrTimeout; flareSession = s.flareSolverrSessionName;
updateSettings({ flareTtl = s.flareSolverrSessionTtl; flareFallback = s.flareSolverrAsResponseFallback;
socksProxyEnabled: socksEnabled, socksProxyHost: socksHost, socksProxyPort: socksPort, updateSettings({
socksProxyVersion: socksVersion, socksProxyUsername: socksUsername, socksProxyEnabled: socksEnabled, socksProxyHost: socksHost, socksProxyPort: socksPort,
flareSolverrEnabled: flareEnabled, flareSolverrUrl: flareUrl, socksProxyVersion: socksVersion, socksProxyUsername: socksUsername,
flareSolverrTimeout: flareTimeout, flareSolverrSessionName: flareSession, flareSolverrEnabled: flareEnabled, flareSolverrUrl: flareUrl,
flareSolverrSessionTtl: flareTtl, flareSolverrAsResponseFallback: flareFallback, flareSolverrTimeout: flareTimeout, flareSolverrSessionName: flareSession,
}); flareSolverrSessionTtl: flareTtl, flareSolverrAsResponseFallback: flareFallback,
} catch {} });
} } catch {}
}
async function saveAuth() { async function saveAuth() {
if (authMode === "NONE") { await clearAuth(); return; } if (authMode === "NONE") { await clearAuth(); return; }
@@ -89,11 +90,11 @@
try { try {
const newUser = authUsername.trim(); const newUser = authUsername.trim();
const newPass = authPassword.trim(); const newPass = authPassword.trim();
authSession.clearTokens();
if (authMode === "UI_LOGIN") { if (authMode === "UI_LOGIN") {
await loginUI(newUser, newPass); await loginUI(newUser, newPass);
updateSettings({ serverAuthMode: "UI_LOGIN", serverAuthUser: newUser, serverAuthPass: "" }); updateSettings({ serverAuthMode: "UI_LOGIN", serverAuthUser: newUser, serverAuthPass: "" });
} else { } else {
authSession.clearTokens();
updateSettings({ serverAuthMode: "BASIC_AUTH", serverAuthUser: newUser, serverAuthPass: newPass }); updateSettings({ serverAuthMode: "BASIC_AUTH", serverAuthUser: newUser, serverAuthPass: newPass });
} }