Discord
Discord 提供程序的设置和使用。
获取 Discord 凭证
要使用 Discord 登录,您需要客户端 ID 和客户端密钥。您可以从 Discord 开发者门户 获取它们。
请确保将重定向 URL 设置为 http://localhost:3000/api/auth/callback/discord,用于本地开发。对于生产环境,您应将其设置为应用程序的 URL。如果更改了认证路由的基本路径,您应该相应地更新重定向 URL。
配置提供程序
要配置提供程序,您需要导入提供程序并将其传递给认证实例的 socialProviders 选项。
import { betterAuth } from "better-auth"
export const auth = betterAuth({
socialProviders: {
discord: {
clientId: process.env.DISCORD_CLIENT_ID as string,
clientSecret: process.env.DISCORD_CLIENT_SECRET as string,
},
},
})对于仅有手机号的账户,即使授予了 email 范围,Discord 也会返回 email: null。请参阅 处理没有邮箱的提供程序,了解推荐的 mapProfileToUser 回退方案。
使用
使用 Discord 登录
要使用 Discord 登录,您可以使用客户端提供的 signIn.social 函数。signIn 函数接受一个包含以下属性的对象:
provider:要使用的提供程序。应设置为discord。
import { createAuthClient } from "better-auth/client"
const authClient = createAuthClient()
const signIn = async () => {
const data = await authClient.signIn.social({
provider: "discord"
})
}选项
有关所有社交提供程序支持的完整选项列表,请查看 提供程序选项。
机器人权限(可选)
如果在 Discord OAuth 中使用了 bot 范围,可以使用 permissions 选项指定机器人权限。它可以是一个按位值(例如 2048 | 16384 表示发送消息和嵌入链接),或一个特定的权限值(例如 16384 表示嵌入链接)。
import { betterAuth } from "better-auth"
export const auth = betterAuth({
socialProviders: {
discord: {
clientId: process.env.DISCORD_CLIENT_ID as string,
clientSecret: process.env.DISCORD_CLIENT_SECRET as string,
permissions: 2048 | 16384, // 发送消息 + 嵌入链接
},
},
})注意: permissions 参数仅在 OAuth2 范围中包含 bot 时才有效。有关 Discord 机器人权限的更多信息,请查阅 Discord 机器人权限。