如何使用 next-auth 获取额外的范围数据?

Posted

技术标签:

【中文标题】如何使用 next-auth 获取额外的范围数据?【英文标题】:How to get additional scope data using next-auth? 【发布时间】:2021-01-05 09:48:40 【问题描述】:

我正在使用带有不和谐身份验证的 next-auth,我将公会添加到我的范围内,但我无法获取公会数据,该怎么做?

const options = 
  providers: [
    Providers.Discord(
      clientId: process.env.DISCORD_CLIENT_ID,
      clientSecret: process.env.DISCORD_CLIENT_SECRET,
      scope: "identify guilds",
    ),
  ],
;

【问题讨论】:

【参考方案1】:

使用 Discord OAuth2 也遇到了这个问题。 我在 NextAuth 的文档中找到了它:

https://next-auth.js.org/providers/discord#example

基本上,您可以在提供程序数组之后添加范围作为常规选项。

import DiscordProvider from "next-auth/providers/discord";
...
providers: [
  DiscordProvider(
    clientId: process.env.DISCORD_CLIENT_ID,
    clientSecret: process.env.DISCORD_CLIENT_SECRET,
    authorization:  params:  scope: 'identify guilds'  ,
  )
]
...

【讨论】:

链接已失效,答案似乎已过时。 @BadPirate 已更新,谢谢!【参考方案2】:

最新版本允许您覆盖任何模式(深度合并,因此您只需键入要更新的字段)。

来到这里寻找这个确切的答案,这就是我使用的:

DiscordProvider(
  clientId: process.env.DISCORD_CLIENT_ID,
  clientSecret: process.env.DISCORD_CLIENT_SECRET,
  authorization:  params:  scope: 'identify guilds'  ,
),

【讨论】:

以上是关于如何使用 next-auth 获取额外的范围数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 next-auth 中向客户端 API 添加数据?

Next-auth - 如何更新会话客户端?

如何在 nextjs 组件中使用 next-auth?

如何使用具有永恒 API 的 Next-auth 凭证提供程序

Next-Auth:如何使用电子邮件 + 密码凭据提供程序处理注册?

如何从请求中解析 JWT 令牌 [Next-Auth]