我正在使用 mongodb 设置身份验证并使用官方 mongodb 适配器。但是,当我配置适配器时,出现此错误:
Тип "import("d:/IT/FRONT END/NEXT/pizza/node_modules/@auth/core/adapters").Adapter" не может быть назначен для типа "import("d:/IT/FRONT END/NEXT/pizza/node_modules/next-auth/adapters").Adapter".
Типы свойства "createUser" несовместимы.
Тип "((user: AdapterUser) => Awaitable<AdapterUser>) | undefined" не может быть назначен для типа "((user: Omit<AdapterUser, "id">) => Awaitable<AdapterUser>) | undefined".
Тип "(user: AdapterUser) => Awaitable<AdapterUser>" не может быть назначен для типа "(user: Omit<AdapterUser, "id">) => Awaitable<AdapterUser>".
Типы параметров "user" и "user" несовместимы.
Свойство "id" отсутствует в типе "Omit<AdapterUser, "id">" и является обязательным в типе "AdapterUser".
文件代码:
import clientPromise from "@/libs/mongoClient";
import { User } from "@/models/User";
import { MongoDBAdapter } from "@auth/mongodb-adapter";
import bcrypt from "bcrypt";
import mongoose from "mongoose";
import NextAuth from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
import GoogleProvider from "next-auth/providers/google";
export const authOptions = {
adapter: MongoDBAdapter(clientPromise),
secret: process.env.SECRET,
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
CredentialsProvider({
name: "Credentials",
id: "credentials",
credentials: {
email: {
label: "Email",
type: "email",
placeholder: "[email protected]",
},
password: { label: "Password", type: "password" },
},
async authorize(credentials, req) {
const email = credentials?.email;
const password = credentials!.password;
mongoose.connect(process.env.MONGO_URI!);
const user = await User.findOne({ email });
const passwordOk = user && bcrypt.compareSync(password, user.password);
if (passwordOk) {
return user;
}
return null;
},
}),
],
};
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };
Может кто-то сталкивался с этим или что-то обновилось, поэтому вылазит такая ошибка?