1. 安装依赖
npm install next-auth prisma @prisma/client
2. 配置 Prisma 模型
在 prisma/schema.prisma 文件中定义 User 和 Account 模型(next-auth v5 推荐使用自定义模型)。
model User {
id String @id @default(uuid())
email String @unique
name String?
image String?
hashedPassword String?
accounts Account[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Account {
id String @id @default(uuid())
userId String
provider String
providerAccountId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
运行 prisma migrate
同步数据库:
npx prisma migrate dev --name init
3. 创建 next-auth 配置
在 pages/api/auth/[...nextauth].ts
文件中添加 next-auth 配置:
import NextAuth, {
AuthOptions } from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
import {
PrismaClient } from "@prisma/client";
import {
compare } from "bcryptjs"; // 假设密码是加密存储的
const prisma = new PrismaClient();
export const authOptions: AuthOptions = {
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
email: {