From 5c5d1033126cd74319c0ebe8f6070eeb7cff1484 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Wed, 18 Feb 2026 06:50:59 +1300 Subject: [PATCH] Moved invidious auth redirect --- materialious/electron/package-lock.json | 4 +-- .../src/lib/externalSettings/index.ts | 1 - materialious/src/lib/misc.ts | 2 +- .../src/routes/(app)/auth/+page.svelte | 25 ------------------- materialious/src/routes/(app)/auth/+page.ts | 0 materialious/src/routes/+layout.svelte | 7 +++--- .../routes/api/proxy/[urlToProxy]/+server.ts | 5 ++++ .../src/routes/invidious/auth/+page.ts | 17 +++++++++++++ 8 files changed, 29 insertions(+), 32 deletions(-) delete mode 100644 materialious/src/routes/(app)/auth/+page.svelte delete mode 100644 materialious/src/routes/(app)/auth/+page.ts create mode 100644 materialious/src/routes/invidious/auth/+page.ts diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 14ff9ce2..9e22f55c 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.15.7", + "version": "1.16.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.15.7", + "version": "1.16.0", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/src/lib/externalSettings/index.ts b/materialious/src/lib/externalSettings/index.ts index 08c47357..6bb2ec83 100644 --- a/materialious/src/lib/externalSettings/index.ts +++ b/materialious/src/lib/externalSettings/index.ts @@ -26,7 +26,6 @@ export async function syncSettingsToBackend() { let initalLoad = true; store.store.subscribe((value) => { if (!get(rawMasterKeyStore)) return; - if (initalLoad) { initalLoad = false; return; diff --git a/materialious/src/lib/misc.ts b/materialious/src/lib/misc.ts index 514afc79..a6aaecd8 100644 --- a/materialious/src/lib/misc.ts +++ b/materialious/src/lib/misc.ts @@ -314,7 +314,7 @@ export async function goToInvidiousLogin() { path.search = searchParams.toString(); await Browser.open({ url: path.toString() }); } else { - searchParams.set('callback_url', `${location.origin}${resolve('/auth', {})}`); + searchParams.set('callback_url', `${location.origin}${resolve('/invidious/auth', {})}`); path.search = searchParams.toString(); document.location.href = path.toString(); } diff --git a/materialious/src/routes/(app)/auth/+page.svelte b/materialious/src/routes/(app)/auth/+page.svelte deleted file mode 100644 index 709e08b6..00000000 --- a/materialious/src/routes/(app)/auth/+page.svelte +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/materialious/src/routes/(app)/auth/+page.ts b/materialious/src/routes/(app)/auth/+page.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/materialious/src/routes/+layout.svelte b/materialious/src/routes/+layout.svelte index dcc0a5b6..e7f81a04 100644 --- a/materialious/src/routes/+layout.svelte +++ b/materialious/src/routes/+layout.svelte @@ -83,11 +83,12 @@ onMount(async () => { ui(); - if (Capacitor.getPlatform() === 'android' && $themeColorStore) { + if (Capacitor.getPlatform() === 'android' && !$themeColorStore) { try { const colorPalette = await colorTheme.getColorPalette(); - themeColorStore.set(convertToHexColorCode(colorPalette.primary)); - await ui('theme', $themeColorStore); + const colorAsHex = convertToHexColorCode(colorPalette.primary); + themeColorStore.set(colorAsHex); + await ui('theme', colorAsHex); } catch { // Continue regardless of error } diff --git a/materialious/src/routes/api/proxy/[urlToProxy]/+server.ts b/materialious/src/routes/api/proxy/[urlToProxy]/+server.ts index c5cb302c..7f676510 100644 --- a/materialious/src/routes/api/proxy/[urlToProxy]/+server.ts +++ b/materialious/src/routes/api/proxy/[urlToProxy]/+server.ts @@ -106,6 +106,11 @@ async function proxyRequest( requestHeaders.set('origin', urlToProxyObj.origin); requestHeaders.set('user-agent', USER_AGENT); + const authHeader = request.headers.get('Authorization'); + if (authHeader) { + requestHeaders.set('Authorization', authHeader); + } + const requestOptions: RequestInit = { method: request.method, headers: requestHeaders, diff --git a/materialious/src/routes/invidious/auth/+page.ts b/materialious/src/routes/invidious/auth/+page.ts new file mode 100644 index 00000000..5fa87762 --- /dev/null +++ b/materialious/src/routes/invidious/auth/+page.ts @@ -0,0 +1,17 @@ +import { resolve } from '$app/paths'; +import { invidiousAuthStore } from '$lib/store'; +import { redirect } from '@sveltejs/kit'; + +export async function load({ url }) { + const username = url.searchParams.get('username'); + const token = url.searchParams.get('token'); + + if (username && token) { + invidiousAuthStore.set({ + username: username, + token: token + }); + } + + throw redirect(302, resolve('/', {})); +}