summaryrefslogtreecommitdiff
path: root/packages/auth/src
diff options
context:
space:
mode:
authorMaze <167211895+mazeincoding@users.noreply.github.com>2025-07-15 12:20:55 +0200
committerGitHub <noreply@github.com>2025-07-15 12:20:55 +0200
commit0e83b6c15eb0318cf5c53373492a6740e521eb24 (patch)
tree0ece838aaaf4071a8ed32804d04edfef0076fec3 /packages/auth/src
parentd7c764f96884284ae6424c3a39f87688faf9af5d (diff)
parent9d5fb821c75dd2f0c0d3da6fb427db966d3c7358 (diff)
downloadopencut-0e83b6c15eb0318cf5c53373492a6740e521eb24.tar.gz
Merge pull request #272 from vietnamesekid/main
feat: integrate @t3-oss/env for environment variable management across the application
Diffstat (limited to 'packages/auth/src')
-rw-r--r--packages/auth/src/client.ts7
-rw-r--r--packages/auth/src/index.ts5
-rw-r--r--packages/auth/src/keys.ts20
-rw-r--r--packages/auth/src/server.ts11
4 files changed, 36 insertions, 7 deletions
diff --git a/packages/auth/src/client.ts b/packages/auth/src/client.ts
index deda3928..2676fb0d 100644
--- a/packages/auth/src/client.ts
+++ b/packages/auth/src/client.ts
@@ -1,5 +1,8 @@
import { createAuthClient } from "better-auth/react";
+import { keys } from "./keys";
+
+const { NEXT_PUBLIC_BETTER_AUTH_URL } = keys();
export const { signIn, signUp, useSession } = createAuthClient({
- baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL!,
-}); \ No newline at end of file
+ baseURL: NEXT_PUBLIC_BETTER_AUTH_URL,
+});
diff --git a/packages/auth/src/index.ts b/packages/auth/src/index.ts
index f0676f1f..a4f5fd44 100644
--- a/packages/auth/src/index.ts
+++ b/packages/auth/src/index.ts
@@ -2,4 +2,7 @@
export * from "./server";
// Re-export client auth
-export * from "./client"; \ No newline at end of file
+export * from "./client";
+
+// Re-export keys
+export * from "./keys"; \ No newline at end of file
diff --git a/packages/auth/src/keys.ts b/packages/auth/src/keys.ts
new file mode 100644
index 00000000..919eaccb
--- /dev/null
+++ b/packages/auth/src/keys.ts
@@ -0,0 +1,20 @@
+import { createEnv } from "@t3-oss/env-nextjs";
+import { z } from "zod";
+
+export const keys = () =>
+ createEnv({
+ server: {
+ BETTER_AUTH_SECRET: z.string(),
+ GOOGLE_CLIENT_ID: z.string(),
+ GOOGLE_CLIENT_SECRET: z.string(),
+ },
+ client: {
+ NEXT_PUBLIC_BETTER_AUTH_URL: z.string().url(),
+ },
+ runtimeEnv: {
+ NEXT_PUBLIC_BETTER_AUTH_URL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL,
+ BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET,
+ GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID,
+ GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
+ },
+ });
diff --git a/packages/auth/src/server.ts b/packages/auth/src/server.ts
index 668d27de..5872962c 100644
--- a/packages/auth/src/server.ts
+++ b/packages/auth/src/server.ts
@@ -1,13 +1,16 @@
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { db } from "@opencut/db";
+import { keys } from "./keys";
+
+const { NEXT_PUBLIC_BETTER_AUTH_URL, BETTER_AUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET } = keys()
export const auth = betterAuth({
database: drizzleAdapter(db, {
provider: "pg",
usePlural: true,
}),
- secret: process.env.BETTER_AUTH_SECRET,
+ secret: BETTER_AUTH_SECRET,
user: {
deleteUser: {
enabled: true,
@@ -18,11 +21,11 @@ export const auth = betterAuth({
},
socialProviders: {
google: {
- clientId: process.env.GOOGLE_CLIENT_ID as string,
- clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,
+ clientId: GOOGLE_CLIENT_ID,
+ clientSecret: GOOGLE_CLIENT_SECRET,
},
},
- baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL,
+ baseURL: NEXT_PUBLIC_BETTER_AUTH_URL,
appName: "OpenCut",
trustedOrigins: ["http://localhost:3000"],
});