存储用户数据 - NextAuth v3 MongoDB

Storing User data - NextAuth v3 with MongoDB

在我的 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][error][session_error] https://next-auth.js.org/errors#session_error Error: optional dependency [mongodb] found but version [4.1.2] did not satisfy constraint [^3.5.9]

我已经安装了 mongodb 软件包。我无法弄清楚这个问题。我的 MongoDB url 工作正常,因为它能够执行其他数据库操作(如添加新数据、获取等)

问题是 major 版本的依赖项不同并且被认为是中断:"^3.5.9" 将满足 v3 中的更新。您的 4.1.2 版本将被视为超出范围,因为对 4 专业的更改将被视为 significant/breaking。

package.json

 "peerOptionalDependencies": {
    "mongodb": "^3.5.9",
    "mysql": "^2.18.1",
    "mssql": "^6.2.1",
    "pg": "^8.2.1",
    "@prisma/client": "^2.16.1"
  }, 

更新 mongodb 版本以支持主要版本的更改,即 "mongodb": "^3.5.9 || ^4","mongodb": "^4",

  "peerOptionalDependencies": {
    "mongodb": "^3.5.9 || ^4",
    "mysql": "^2.18.1",
    "mssql": "^6.2.1",
    "pg": "^8.2.1",
    "@prisma/client": "^2.16.1"
  },