Multi-File Authentication Refactoring
// Cascade Prompt Example:
// "Refactor authentication to use better-auth v1.3.9 across these files:
// - lib/auth.ts
// - app/api/auth/[...auth]/route.ts
// - components/login-form.tsx
// Maintain all existing OAuth providers and session logic."
// Before: lib/auth.ts (NextAuth)
import NextAuth from 'next-auth';
import { authOptions } from './options';
export const { handlers, signIn, signOut, auth } = NextAuth(authOptions);
// After: lib/auth.ts (better-auth) - Generated by Cascade
import { betterAuth } from 'better-auth';
import { prismaAdapter } from 'better-auth/adapters/prisma';
import { prisma } from '@/lib/db';
export const auth = betterAuth({
database: prismaAdapter(prisma, { provider: 'postgresql' }),
emailAndPassword: { enabled: true },
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID!,
clientSecret: process.env.GITHUB_CLIENT_SECRET!,
},
google: {
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
},
},
});
export const { signIn, signOut } = auth;