From dd6cdfc208b91b8aa911cc740491f26959c5965a Mon Sep 17 00:00:00 2001 From: LovelessCodes Date: Mon, 9 Jun 2025 22:37:53 +0200 Subject: [PATCH] refactor: simplify auth configuration by using NEXT_PUBLIC_BASE_URL instead of BETTER_AUTH_URL (#66) --- .env.example | 1 - README.md | 3 +-- apps/web/src/env.ts | 4 ++-- docker-compose.yml | 1 - packages/auth/src/auth.ts | 9 ++++++--- turbo.json | 1 - 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index 0bce0644..0a43f2ad 100644 --- a/.env.example +++ b/.env.example @@ -18,7 +18,6 @@ S3_ACCESS_KEY_ID= S3_SECRET_ACCESS_KEY= BETTER_AUTH_SECRET= -BETTER_AUTH_URL= BETTER_AUTH_TRUSTED_ORIGINS= GOOGLE_CLIENT_ID= diff --git a/README.md b/README.md index cda25b68..7dea739a 100644 --- a/README.md +++ b/README.md @@ -115,8 +115,7 @@ pnpm dev | `SMTP_PASSWORD` | SMTP password/token | For Email | `re_xxxx` | | `NEXT_PUBLIC_BASE_URL` | Base URL of your installation | Yes | `http://localhost:3000` | | `BETTER_AUTH_SECRET` | Auth encryption secret | Yes | Random 32+ char string | -| `BETTER_AUTH_URL` | Auth callback URL | Yes | Same as `NEXT_PUBLIC_BASE_URL` | -| `BETTER_AUTH_TRUSTED_ORIGINS` | Allowed callback origins | Yes | `http://localhost:3000,http://localhost:3001` | +| `BETTER_AUTH_TRUSTED_ORIGINS` | Allowed callback origins | No | `http://localhost:3000,http://localhost:3001` | | `GOOGLE_CLIENT_ID` | Google OAuth client ID | For Google login | `xxx.apps.googleusercontent.com` | | `GOOGLE_CLIENT_SECRET` | Google OAuth client secret | For Google login | `xxx` | | `DISCORD_CLIENT_ID` | Discord OAuth client ID | For Discord login | `xxx` | diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index 9f4e0f59..2eca268d 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -15,12 +15,12 @@ export const env = createEnv({ */ server: { BETTER_AUTH_SECRET: z.string(), - BETTER_AUTH_URL: z.string().url(), BETTER_AUTH_TRUSTED_ORIGINS: z .string() .refine((s) => s.split(",").every((l) => z.string().url().safeParse(l).success), - ), + ) + .optional(), POSTGRES_URL: z.string().url(), STRIPE_SECRET_KEY: z.string().optional(), GOOGLE_CLIENT_ID: z.string().optional(), diff --git a/docker-compose.yml b/docker-compose.yml index c28979e7..8e260230 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,7 +20,6 @@ services: - SMTP_USER=${SMTP_USER} - SMTP_PASSWORD=${SMTP_PASSWORD} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} - - BETTER_AUTH_URL=${BETTER_AUTH_URL} - BETTER_AUTH_TRUSTED_ORIGINS=${BETTER_AUTH_TRUSTED_ORIGINS} - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET} diff --git a/packages/auth/src/auth.ts b/packages/auth/src/auth.ts index 37a39adb..496a5c4d 100644 --- a/packages/auth/src/auth.ts +++ b/packages/auth/src/auth.ts @@ -100,10 +100,13 @@ async function downloadImage(url: string): Promise { export const initAuth = (db: dbClient) => { return betterAuth({ secret: process.env.BETTER_AUTH_SECRET!, - baseURL: process.env.BETTER_AUTH_BASE_URL!, + baseURL: process.env.NEXT_PUBLIC_BASE_URL!, trustedOrigins: process.env.BETTER_AUTH_TRUSTED_ORIGINS - ? process.env.BETTER_AUTH_TRUSTED_ORIGINS.split(",") - : [], + ? [ + process.env.NEXT_PUBLIC_BASE_URL!, + ...process.env.BETTER_AUTH_TRUSTED_ORIGINS.split(","), + ] + : [process.env.NEXT_PUBLIC_BASE_URL!], database: drizzleAdapter(db, { provider: "pg", schema: { diff --git a/turbo.json b/turbo.json index 8e3d11f5..8e39abbb 100644 --- a/turbo.json +++ b/turbo.json @@ -104,7 +104,6 @@ "S3_ENDPOINT", "PORT", "BETTER_AUTH_SECRET", - "BETTER_AUTH_URL", "BETTER_AUTH_TRUSTED_ORIGINS" ], "globalPassThroughEnv": [