Learn how to manage user sessions in your application
apps/server/src/lib/auth.ts
// apps/server/src/lib/auth.ts import { betterAuth } from "better-auth"; import { prismaAdapter } from "better-auth/adapters/prisma"; export const auth = betterAuth({ database: prismaAdapter(prisma, { provider: "postgresql", }), advanced: { crossSubDomainCookies: { enabled: true, }, }, });
model Session { id String @id @map("_id") expiresAt DateTime token String @unique createdAt DateTime updatedAt DateTime ipAddress String? userAgent String? userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) }
// apps/web/src/lib/auth-client.ts import { createAuthClient } from "better-auth/react"; export const authClient = createAuthClient({ baseURL: process.env.NEXT_PUBLIC_SERVER_URL!, });
// apps/web/src/hooks/use-session.ts import { authClient } from "@/lib/client" const { data: session } = authClient.useSession()