dvijaykrishnan's picture
fix(auth): add production url to trustedOrigins and fix secure cookies
eb36d07
Raw
History Blame Contribute Delete
1.68 kB
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { drizzle } from 'drizzle-orm/postgres-js';
import postgres from 'postgres';
import * as schema from "./db/schema";
const pool = postgres(process.env.DIRECT_URL!, {
ssl: 'require',
});
const authDb = drizzle(pool, {
casing: 'snake_case',
});
export const auth = betterAuth({
database: drizzleAdapter(authDb, {
provider: "pg",
schema: {
user: schema.users,
session: schema.sessions,
account: schema.accounts,
verification: schema.verifications,
},
}),
account: {
accountLinking: {
enabled: true,
trustedProviders: ["google"],
},
encryptOAuthTokens: false,
},
// Transitioning to Google-only authentication
emailAndPassword: {
enabled: false,
},
socialProviders: {
google: {
clientId: process.env.GOOGLE_CLIENT_ID || "",
clientSecret: process.env.GOOGLE_CLIENT_SECRET || "",
scope: ["https://www.googleapis.com/auth/youtube.readonly"],
}
},
advanced: {
useSecureCookies: process.env.NODE_ENV === "production", // Secure in prod, insecure in dev
},
trustedOrigins: [
"http://localhost:3000",
"http://127.0.0.1:3000",
...(process.env.BETTER_AUTH_URL ? [process.env.BETTER_AUTH_URL] : [])
],
secret: process.env.BETTER_AUTH_SECRET || (process.env.CI ? "dummy_secret_for_ci_build" : undefined),
baseURL: process.env.BETTER_AUTH_URL || (process.env.CI ? "http://localhost:3000" : undefined),
});