Discord OAuth2:'请求中缺少“代码”'

Posted

技术标签:

【中文标题】Discord OAuth2:\'请求中缺少“代码”\'【英文标题】:Discord OAuth2: 'Missing "code" in request'Discord OAuth2:'请求中缺少“代码”' 【发布时间】:2020-10-12 20:12:44 【问题描述】:

几个月前我写了一个 Discord OAuth2 验证代码,它成功了。但现在它不起作用。 Discord 响应“请求中缺少“代码””。我看了看,我的请求发送了代码。我该如何解决这个问题?

取码access_token:

const response = await fetch(`https://discordapp.com/api/oauth2/token?grant_type=authorization_code&code=$code&redirect_uri=$loginredirect`,

  method: 'POST',
  headers: 
    Authorization: `Basic $creds`,
  
);

const json = await response.json();

【问题讨论】:

【参考方案1】:

看起来您已经获得了调用令牌端点并将代码交换为令牌所需的字段。您需要在表单正文中发送数据 - 像这样:

const response = await fetch(`https://discordapp.com/api/oauth2/token`,

  method: 'POST',
  headers: 
    Authorization: `Basic $creds`,
  ,
  body: JSON.stringify(
    grant_type: 'authorization_code',
    code,
    redirect_uri: loginredirect,
  ),
);

const json = await response.json();

我还会考虑使用 OAuth 安全库(例如 openid-client)来为您进行更多安全检查,而不是使用原始提取 API。

【讨论】:

它不工作。它给出错误“invalid_grant”。

以上是关于Discord OAuth2:'请求中缺少“代码”'的主要内容,如果未能解决你的问题,请参考以下文章

Discord Oauth2 PHP 中的 JPEG 头像

向 Discord API 发送 OAuth2 请求时的 invalid_client

Discord bot 无法访问 Google Sheets 获取错误请求缺少有效的 API 密钥

Discord API - 传回生成的 OAuth2 代码的随机“无效代码”错误

Google OAuth2 .Net HttpPost 请求 access_token 中缺少 refresh_token

错误:应用程序(...):渲染没有返回任何内容。这通常意味着缺少返回语句 discord.js react typescript