【发布时间】:2021-11-14 13:23:11
【问题描述】:
在我的 NextJS 应用程序中,我尝试使用 MongoDB 来存储 Next-Auth (v3) 包正在使用的用户数据。
我的/api/auth/[...nextauth].js 文件中的代码:
import NextAuth from 'next-auth'
import Providers from 'next-auth/providers'
export default NextAuth({
providers: [
Providers.OneLogin({
clientId: process.env.ONELOGIN_CLIENT_ID,
clientSecret: process.env.ONELOGIN_CLIENT_SECRET,
domain: process.env.ONELOGIN_DOMAIN
})
],
callbacks: {
jwt: async (token, user, account, profile, isNewUser) => {
if (user) { //-- if success, store the id of the user in jwt token
token.uid = user.id;
}
return Promise.resolve(token);
},
session: async (session, user) => {
session.user.uid = user.uid; //-- store the id of the user in the session data
return Promise.resolve(session);
}
},
// Optional SQL or MongoDB database to persist users
database: process.env.MONGODB_URL
// database: {
// type: "mongodb",
// useNewUrlParser: true,
// url: process.env.MONGODB_URL,
// },
})
但它总是抛出以下错误:
[next-auth][错误][session_error] https://next-auth.js.org/errors#session_error 错误:可选 找到依赖项 [mongodb] 但版本 [4.1.2] 不满足 约束 [^3.5.9]
我已经安装了mongodb 包。我无法弄清楚这个问题。我的 MongoDB url 工作正常,因为它能够执行其他数据库操作(如添加新数据、获取等)
【问题讨论】:
标签: mongodb authentication next.js onelogin next-auth