diff options
| author | Hyteq <DerpsDer.es@gmail.com> | 2025-06-24 11:31:35 +0300 |
|---|---|---|
| committer | Hyteq <DerpsDer.es@gmail.com> | 2025-06-24 11:31:35 +0300 |
| commit | 3b4577e474a95a16f0b9478ad3eddf50a2ba90eb (patch) | |
| tree | 928c6fe5bc27ddf4e6ae5f15b0159e11aed52ca6 | |
| parent | 30bc2127a2e1fb8368d0e29d5eb755e30dc1485e (diff) | |
| download | opencut-3b4577e474a95a16f0b9478ad3eddf50a2ba90eb.tar.gz | |
feat: initial auth package
| -rw-r--r-- | packages/auth/package.json | 19 | ||||
| -rw-r--r-- | packages/auth/src/client.ts | 5 | ||||
| -rw-r--r-- | packages/auth/src/index.ts | 5 | ||||
| -rw-r--r-- | packages/auth/src/server.ts | 29 |
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 |
