Discord OAuth 在请求中返回缺少的“代码”

Posted

技术标签:

【中文标题】Discord OAuth 在请求中返回缺少的“代码”【英文标题】:Discord OAuth returns missing "code in request 【发布时间】:2021-04-12 08:02:55 【问题描述】:

我正在尝试使用一个简单的示例从 Discord API 获取访问令牌。我有授权码,但我正在努力将其换成访问令牌。

到目前为止我的代码:

const code = **my authorization code**;
const CLIENT_ID = **my client id**;
const CLIENT_SECRET = **my client secret**;
const creds = btoa(`$CLIENT_ID:$CLIENT_SECRET`);
fetch(`https://discordapp.com/api/oauth2/token?grant_type=authorization_code&code=$code&redirect_uri=$redirect`,
  
    method: "POST",
    headers: 
      Authorization: `Basic $creds`,
  ,
)
  .then((res) => res.json())
  .then((body) => console.log(body));

但是,当我运行此代码时,我收到以下错误:


   error: 'invalid_request',
   error_description: 'Missing "code" in request.'

【问题讨论】:

【参考方案1】:

我知道如何解决这个问题。所以 Discord API 已经更新,您不能再在 URL 中指定代码、授权类型和重定向 URI。您需要将其从 URL 中删除并放入正文中。

这应该可以解决它:https://sourceb.in/BGWsbUzope

【讨论】:

如果我这样做,我只会得到“invalid_grant”错误。 “错误:'invalid_grant'” 哦,我的错,不要使用 JSON 表示法,而是使用 querystring npm 模块。 那是哪个模块?我从来没有听说过。 在 NPM 上称为querystring。 npmjs.com/package/querystring 使用它而不是 JSON。所以不是 JSON.stringify,而是 querystring.stringify。 您能否将完整的解决方案添加到答案中,以便遇到此问题的每个人(如我)都有机会解决它?

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

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

向 Discord API 发送 OAuth2 请求时的 invalid_client

向 Discord 发出 php OAuth 请求

Discord Oauth 获取权限

discord oauth2 api 调用返回“405:不允许的方法”

Discord Oauth2 PHP 中的 JPEG 头像