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