summaryrefslogtreecommitdiff
path: root/packages/auth
diff options
context:
space:
mode:
authorZaid-maker <53424436+Zaid-maker@users.noreply.github.com>2025-06-24 16:59:44 +0500
committerZaid-maker <53424436+Zaid-maker@users.noreply.github.com>2025-06-24 16:59:44 +0500
commit62051de6c11dde40e2929c030e4418f87b137e42 (patch)
tree3492ed2abd6a127512a6ce09543bcf770bcd53d5 /packages/auth
parent7c83b8e70b2024d79f053bd40e6f633969c2c1f5 (diff)
parent900deab065ef17941262f48524af786cac302945 (diff)
downloadopencut-62051de6c11dde40e2929c030e4418f87b137e42.tar.gz
Merge branch 'main' into implement-workflows
Diffstat (limited to 'packages/auth')
-rw-r--r--packages/auth/package.json19
-rw-r--r--packages/auth/src/client.ts5
-rw-r--r--packages/auth/src/index.ts5
-rw-r--r--packages/auth/src/server.ts29
4 files changed, 58 insertions, 0 deletions
diff --git a/packages/auth/package.json b/packages/auth/package.json
new file mode 100644
index 00000000..3ee43643
--- /dev/null
+++ b/packages/auth/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "@opencut/auth",
+ "version": "0.0.0",
+ "description": "Authentication package for OpenCut",
+ "main": "./src/index.ts",
+ "types": "./src/index.ts",
+ "exports": {
+ ".": "./src/index.ts",
+ "./client": "./src/client.ts",
+ "./server": "./src/server.ts"
+ },
+ "dependencies": {
+ "better-auth": "^1.1.1",
+ "@opencut/db": "workspace:*"
+ },
+ "devDependencies": {
+ "@types/node": "^22.10.2"
+ }
+} \ No newline at end of file
diff --git a/packages/auth/src/client.ts b/packages/auth/src/client.ts
new file mode 100644
index 00000000..deda3928
--- /dev/null
+++ b/packages/auth/src/client.ts
@@ -0,0 +1,5 @@
+import { createAuthClient } from "better-auth/react";
+
+export const { signIn, signUp, useSession } = createAuthClient({
+ baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL!,
+}); \ No newline at end of file
diff --git a/packages/auth/src/index.ts b/packages/auth/src/index.ts
new file mode 100644
index 00000000..f0676f1f
--- /dev/null
+++ b/packages/auth/src/index.ts
@@ -0,0 +1,5 @@
+// Re-export server auth
+export * from "./server";
+
+// Re-export client auth
+export * from "./client"; \ No newline at end of file
diff --git a/packages/auth/src/server.ts b/packages/auth/src/server.ts
new file mode 100644
index 00000000..f6c68dc5
--- /dev/null
+++ b/packages/auth/src/server.ts
@@ -0,0 +1,29 @@
+import { betterAuth } from "better-auth";
+import { drizzleAdapter } from "better-auth/adapters/drizzle";
+import { db } from "@opencut/db";
+
+export const auth = betterAuth({
+ database: drizzleAdapter(db, {
+ provider: "pg",
+ usePlural: true,
+ }),
+ secret: process.env.BETTER_AUTH_SECRET!,
+ user: {
+ deleteUser: {
+ enabled: true,
+ },
+ },
+ emailAndPassword: {
+ enabled: true,
+ },
+ socialProviders: {
+ google: {
+ clientId: process.env.GOOGLE_CLIENT_ID as string,
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,
+ },
+ },
+ appName: "OpenCut",
+ trustedOrigins: ["http://localhost:3000"],
+});
+
+export type Auth = typeof auth; \ No newline at end of file