为什么下一个身份验证说需要 client_id,即使在不和谐的提供程序中,显然有一个 client_id

pot*_*123 6 oauth discord next.js next-auth

当我尝试使用下一个身份验证创建不和谐的 oauth 客户端并单击“登录”时,出现以下错误:

https://next-auth.js.org/errors#get_authorization_url_error client_id is required {
  message: 'client_id is required',
  stack: 'TypeError: client_id is required\n' +
    '    at new BaseClient (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:178:13)\n' +
    '    at new Client (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:1823:7)\n' +
    '    at openidClient (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/client.js:28:18)\n' +
    '    at getAuthorizationUrl (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/authorization-url.js:67:51)\n' +
    '    at Object.signin (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/routes/signin.js:37:60)\n' +
    '    at NextAuthHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/index.js:191:39)\n' +
    '    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n' +
    '    at async NextAuthNextHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:21:19)\n' +
    '    at async /Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:57:32\n' +
    '    at async Object.apiResolver (/Users/muyuan/Documents/minibot/node_modules/next/dist/server/api-utils.js:101:9)',
  name: 'TypeError'
}
[next-auth][error][SIGNIN_OAUTH_ERROR] 
https://next-auth.js.org/errors#signin_oauth_error client_id is required {
  error: {
    message: 'client_id is required',
    stack: 'TypeError: client_id is required\n' +
      '    at new BaseClient (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:178:13)\n' +
      '    at new Client (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:1823:7)\n' +
      '    at openidClient (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/client.js:28:18)\n' +
      '    at getAuthorizationUrl (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/authorization-url.js:67:51)\n' +
      '    at Object.signin (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/routes/signin.js:37:60)\n' +
      '    at NextAuthHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/index.js:191:39)\n' +
      '    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n' +
      '    at async NextAuthNextHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:21:19)\n' +
      '    at async /Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:57:32\n' +
      '    at async Object.apiResolver (/Users/muyuan/Documents/minibot/node_modules/next/dist/server/api-utils.js:101:9)',
    name: 'TypeError'
  },
  provider: {
    id: 'discord',
    name: 'Discord',
    type: 'oauth',
    authorization: {
      url: 'https://discord.com/api/oauth2/authorize',
      params: [Object]
    },
    token: { url: 'https://discord.com/api/oauth2/token', params: {} },
    userinfo: { url: 'https://discord.com/api/users/@me', params: {} },
    profile: [Function: profile],
    idToken: false,
    checks: [ 'state' ],
    client_id: my client id(not actually 'my client id'),
    client_secret: my client secret(not actually 'my client secret'),
    signinUrl: 'http://localhost:3000/api/auth/signin/discord',
    callbackUrl: 'http://localhost:3000/api/auth/callback/discord'
  },
  message: 'client_id is required'
}
Run Code Online (Sandbox Code Playgroud)

这就是我定义不和谐提供者的方式:

https://next-auth.js.org/errors#get_authorization_url_error client_id is required {
  message: 'client_id is required',
  stack: 'TypeError: client_id is required\n' +
    '    at new BaseClient (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:178:13)\n' +
    '    at new Client (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:1823:7)\n' +
    '    at openidClient (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/client.js:28:18)\n' +
    '    at getAuthorizationUrl (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/authorization-url.js:67:51)\n' +
    '    at Object.signin (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/routes/signin.js:37:60)\n' +
    '    at NextAuthHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/index.js:191:39)\n' +
    '    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n' +
    '    at async NextAuthNextHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:21:19)\n' +
    '    at async /Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:57:32\n' +
    '    at async Object.apiResolver (/Users/muyuan/Documents/minibot/node_modules/next/dist/server/api-utils.js:101:9)',
  name: 'TypeError'
}
[next-auth][error][SIGNIN_OAUTH_ERROR] 
https://next-auth.js.org/errors#signin_oauth_error client_id is required {
  error: {
    message: 'client_id is required',
    stack: 'TypeError: client_id is required\n' +
      '    at new BaseClient (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:178:13)\n' +
      '    at new Client (/Users/muyuan/Documents/minibot/node_modules/openid-client/lib/client.js:1823:7)\n' +
      '    at openidClient (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/client.js:28:18)\n' +
      '    at getAuthorizationUrl (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/lib/oauth/authorization-url.js:67:51)\n' +
      '    at Object.signin (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/routes/signin.js:37:60)\n' +
      '    at NextAuthHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/core/index.js:191:39)\n' +
      '    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n' +
      '    at async NextAuthNextHandler (/Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:21:19)\n' +
      '    at async /Users/muyuan/Documents/minibot/node_modules/next-auth/next/index.js:57:32\n' +
      '    at async Object.apiResolver (/Users/muyuan/Documents/minibot/node_modules/next/dist/server/api-utils.js:101:9)',
    name: 'TypeError'
  },
  provider: {
    id: 'discord',
    name: 'Discord',
    type: 'oauth',
    authorization: {
      url: 'https://discord.com/api/oauth2/authorize',
      params: [Object]
    },
    token: { url: 'https://discord.com/api/oauth2/token', params: {} },
    userinfo: { url: 'https://discord.com/api/users/@me', params: {} },
    profile: [Function: profile],
    idToken: false,
    checks: [ 'state' ],
    client_id: my client id(not actually 'my client id'),
    client_secret: my client secret(not actually 'my client secret'),
    signinUrl: 'http://localhost:3000/api/auth/signin/discord',
    callbackUrl: 'http://localhost:3000/api/auth/callback/discord'
  },
  message: 'client_id is required'
}
Run Code Online (Sandbox Code Playgroud)

显然有一个client_id。为什么它仍然给我这个错误?另外,在我的网站上,当我单击“使用不和谐登录”时,它会显示“尝试使用其他帐户登录”。

Fel*_*aro 2

我不是专家,但您尝试过更改配置对象属性名称吗? \n
\n我相信它们应该是camelCase而不是snake_case\n
\n
\n\xe2\x9c\x85 \xc2\xa0\xc2\xa0"clientId"\ n
\n\xe2\x9d\x8c \xc2\xa0\xc2\xa0"client_id"

\n
DiscordProvider({\n    clientId: process.env.DISCORD_CLIENT_ID,\n    clientSecret: process.env.DISCORD_CLIENT_SECRET\n})\n
Run Code Online (Sandbox Code Playgroud)\n