diff --git a/server/src/auth/better-auth.ts b/server/src/auth/better-auth.ts index c234cb49..5c80fad7 100644 --- a/server/src/auth/better-auth.ts +++ b/server/src/auth/better-auth.ts @@ -53,7 +53,7 @@ export function deriveAuthTrustedOrigins(config: Config): string[] { // Better Auth will surface invalid base URL separately. } } - if (config.deploymentMode === "authenticated" && config.deploymentExposure === "private") { + if (config.deploymentMode === "authenticated") { for (const hostname of config.allowedHostnames) { const trimmed = hostname.trim().toLowerCase(); if (!trimmed) continue; @@ -65,15 +65,15 @@ export function deriveAuthTrustedOrigins(config: Config): string[] { return Array.from(trustedOrigins); } -export function createBetterAuthInstance(db: Db, config: Config): BetterAuthInstance { +export function createBetterAuthInstance(db: Db, config: Config, trustedOrigins?: string[]): BetterAuthInstance { const baseUrl = config.authBaseUrlMode === "explicit" ? config.authPublicBaseUrl : undefined; const secret = process.env.BETTER_AUTH_SECRET ?? process.env.PAPERCLIP_AGENT_JWT_SECRET ?? "paperclip-dev-secret"; - const trustedOrigins = deriveAuthTrustedOrigins(config); + const effectiveTrustedOrigins = trustedOrigins ?? deriveAuthTrustedOrigins(config); const authConfig = { baseURL: baseUrl, secret, - trustedOrigins, + trustedOrigins: effectiveTrustedOrigins, database: drizzleAdapter(db, { provider: "pg", schema: { diff --git a/server/src/index.ts b/server/src/index.ts index 6604bb54..e78a6479 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -441,7 +441,7 @@ if (config.deploymentMode === "authenticated") { }, "Authenticated mode auth origin configuration", ); - const auth = createBetterAuthInstance(db as any, config); + const auth = createBetterAuthInstance(db as any, config, effectiveTrustedOrigins); betterAuthHandler = createBetterAuthHandler(auth); resolveSession = (req) => resolveBetterAuthSession(auth, req); resolveSessionFromHeaders = (headers) => resolveBetterAuthSessionFromHeaders(auth, headers);