NextAuth未根据MONGOOSE架构保存Oauth用户

myzjeezk  于 2023-05-28  发布在  Go
关注(0)|答案(1)|浏览(135)

我正在构建一个使用nextjs、NextAuth进行身份验证的Web应用程序,以及使用mongoose作为数据库的mongoDB。我在[... nextauth].js路径中实现了两个提供程序:Google和Github。另外,我已经通过连接URL将其连接到DB。现在,我期待的是,根据我在User模型中提供的Mongoose模式自动保存用户。问题是Google用户是根据schema保存的,但Github用户不是。
我有两个问题:
1.这是将NextAuth与我已经连接的Mongoose示例连接的正确方法吗?
1.这种行为的解释是什么;为什么谷歌用户遵守模式,而不是Github的。
我试图做的是尝试阅读NextAuth网站上的文档,但我找不到任何解决这个问题的东西,也没有找到任何解释如何用mongoose实现这一点的东西。
配置文件为:

providers: [
  Providers.GitHub({
    clientId: process.env.GITHUBID,
    clientSecret: process.env.GITHUBSECRET,
  }),
  Providers.Google({
    clientId: process.env.GOOGLE_CLIENT_ID,
    clientSecret: process.env.GOOGLE_CLIENT_SECRET,
  }),
],
database: process.env.MONGODB,

github中的用户文档示例:Github user document
来自Google的用户文档:Google user document
由于阅读文档对我没有帮助,网上也没有太多关于这个主题的内容,我很想听到一些指导,告诉我在哪里可以找到更多关于如何使用next-auth连接数据库的信息,以及我如何理解它。谢谢。

b5lpy0ml

b5lpy0ml1#

NextAuth.js维护者在这里。从你的代码片段来看,你似乎正在使用v3版本的next-auth。
在这种情况下,next-auth在创建用户时只保存用户配置文件的一个子集。
以下是这些字段:https://github.com/nextauthjs/adapters/blob/main/packages/typeorm-legacy/src/models/user.js#L1-L8
在v4中,用户配置文件将由提供程序的配置文件回调简单地确定。请记住,用户配置文件是从用户第一次登录的提供商的配置文件创建的。
https://next-auth.js.org/adapters/models#user
对于未来的问题,我建议在我们的存储库中将它们作为问题或讨论打开。

相关问题