feat: initial auth package
This commit is contained in:
19
packages/auth/package.json
Normal file
19
packages/auth/package.json
Normal file
@ -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"
|
||||
}
|
||||
}
|
5
packages/auth/src/client.ts
Normal file
5
packages/auth/src/client.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { createAuthClient } from "better-auth/react";
|
||||
|
||||
export const { signIn, signUp, useSession } = createAuthClient({
|
||||
baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL!,
|
||||
});
|
5
packages/auth/src/index.ts
Normal file
5
packages/auth/src/index.ts
Normal file
@ -0,0 +1,5 @@
|
||||
// Re-export server auth
|
||||
export * from "./server";
|
||||
|
||||
// Re-export client auth
|
||||
export * from "./client";
|
29
packages/auth/src/server.ts
Normal file
29
packages/auth/src/server.ts
Normal file
@ -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;
|
Reference in New Issue
Block a user