diff --git a/src/common/auth/token_storage.ts b/src/common/auth/token_storage.ts index 3610f6b089..c2d168eb96 100644 --- a/src/common/auth/token_storage.ts +++ b/src/common/auth/token_storage.ts @@ -1,5 +1,6 @@ import type { AuthData } from "home-assistant-js-websocket"; import { extractSearchParam } from "../url/search-params"; +import { hassUrl } from "../../data/auth"; declare global { interface Window { @@ -30,7 +31,11 @@ export function askWrite() { export function saveTokens(tokens: AuthData | null) { tokenCache.tokens = tokens; - if (!tokenCache.writeEnabled && extractSearchParam("storeToken") === "true") { + if ( + !tokenCache.writeEnabled && + (extractSearchParam("storeToken") === "true" || + hassUrl !== `${location.protocol}//${location.host}`) + ) { tokenCache.writeEnabled = true; } diff --git a/test/common/auth/token_storage/askWrite.test.ts b/test/common/auth/token_storage/askWrite.test.ts index 2357d23edd..1dcd61376f 100644 --- a/test/common/auth/token_storage/askWrite.test.ts +++ b/test/common/auth/token_storage/askWrite.test.ts @@ -1,8 +1,14 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; let askWrite; +const HASS_URL = `${location.protocol}//${location.host}`; + describe("token_storage.askWrite", () => { + beforeEach(() => { + vi.stubGlobal("__HASS_URL__", HASS_URL); + }); + afterEach(() => { vi.resetModules(); }); diff --git a/test/common/auth/token_storage/saveTokens.test.ts b/test/common/auth/token_storage/saveTokens.test.ts index b98d310cf3..0222f50974 100644 --- a/test/common/auth/token_storage/saveTokens.test.ts +++ b/test/common/auth/token_storage/saveTokens.test.ts @@ -4,9 +4,12 @@ import { FallbackStorage } from "../../../test_helper/local-storage-fallback"; let saveTokens; +const HASS_URL = `${location.protocol}//${location.host}`; + describe("token_storage.saveTokens", () => { beforeEach(() => { window.localStorage = new FallbackStorage(); + vi.stubGlobal("__HASS_URL__", HASS_URL); }); afterEach(() => { diff --git a/test/common/auth/token_storage/token_storage.test.ts b/test/common/auth/token_storage/token_storage.test.ts index 42ed3ead23..18cb5ecf9e 100644 --- a/test/common/auth/token_storage/token_storage.test.ts +++ b/test/common/auth/token_storage/token_storage.test.ts @@ -2,6 +2,8 @@ import { describe, it, expect, test, vi, afterEach, beforeEach } from "vitest"; import type { AuthData } from "home-assistant-js-websocket"; import { FallbackStorage } from "../../../test_helper/local-storage-fallback"; +const HASS_URL = `${location.protocol}//${location.host}`; + describe("token_storage", () => { beforeEach(() => { vi.stubGlobal( @@ -11,6 +13,7 @@ describe("token_storage", () => { writeEnabled: undefined, }) ); + vi.stubGlobal("__HASS_URL__", HASS_URL); window.localStorage = new FallbackStorage(); });