【问题标题】:Discord Oauth2 Token Method return invalids redirect_uriDiscord Oauth2 令牌方法返回无效的 redirect_uri
【发布时间】:2021-06-29 17:21:59
【问题描述】:

我目前正在处理一个项目,但在尝试从 discords oauth2 路由获取令牌时遇到问题。每当我尝试调用我的 api 方法时,discord API 都会响应说 redirect_uri 无效。我不完全确定我做错了什么。

  let data = {
    client_id: client_id,
    client_secret: client_secret,
    code: code.toString(),
    grant_type: 'authorization_code',
    scope: 'identify',
    redirect_uri: redirect_uri,
  }
  const config = {
    headers: {'content-type': 'application/x-www-form-urlencoded'}
  }
  await Axios.post('https://discord.com/api/oauth2/token', new URLSearchParams(data), config)
    .then((res) => {
      let data = res.data;
      response.send(data);
    })
    .catch((err) => {
      console.log(err);
      response.sendStatus(500);
    })
}

这是我在控制台中看到的错误:

data: {
  error: 'invalid_request',
  error_description: 'Invalid "redirect_uri" in request.'
}

【问题讨论】:

  • 您确定您的重定向 URI 方案匹配,即 http 与 https。 ?
  • 当您在项目中创建 oauth2 客户端时,您必须指定一个 redirect_uri。您在 discord 中指定的内容必须完全与您传递的内容相匹配。方案、路径、域、端口,一切都必须相同。如果您收到此错误,则表示不匹配。
  • 我得到这个错误的原因是因为我输入了错误的redirect_uri参数,将它错误地命名为redirect_url

标签: javascript oauth discord


【解决方案1】:

我刚刚自己解决了这个问题。事实证明,该 uri 必须与您在 Discord Application Oauth2 页面上使用的 uri 匹配。

最好的祝愿, 计算法

【讨论】:

  • 这不是一个真正的正确答案。不是 url 必须以斜杠结尾,它必须与设置的完全匹配匹配。这也可能意味着您需要删除斜线。 redirect_uri 检查是完全匹配
  • 我意识到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
  • 2014-05-31
  • 2015-12-24
相关资源
最近更新 更多