【问题标题】:Storing User data - NextAuth v3 with MongoDB存储用户数据 - NextAuth v3 与 MongoDB
【发布时间】: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


    【解决方案1】:

    问题是依赖的 主要 版本不同并且被认为是破坏:"^3.5.9" 将满足 v3 中的更新。您的4.1.2 版本将被视为超出范围,因为对4 的主要更改将被视为重大/破坏性。

    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"
      }, 
    

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 2021-11-12
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2022-01-07
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多