Discord OAuth2 redirect_uri 组件的问题

nor*_*dev 4 node.js oauth-2.0 express discord

我目前正在为我的 Web 应用程序开发 Discord OAuth2 客户端。

无论我多么努力地设置redirect_uri以使discord不发送错误,我都无法修复它,并且我不断收到此消息:

无效的 OAuth2 redirect_uri :您现在可以关闭此选项卡。

截屏 (对不起第二行的外语)

我的 redirect_uri 是:

const redirect = encodeURIComponent("http://localhost/callback");

(该网站存在于服务器上并正常工作。)

**我尝试了很多组合,包括: - 添加 https:// 而不是 http:// - 添加.com到域 - 在单词后添加斜杠callback - 使用普通字符串而不是 encodeURIComponent - 通过 Discord Developer 生成 oauth2 redirect_uri页 **

唯一有效的是从 URL 参数中完全删除了 redirect_uri,这使应用程序正常工作,但之后没有重定向到正确的位置;

(这是我的 oauth2 网址):

https://discordapp.com/api/oauth2/authorize?client_id=${id}&redirect_uri=${redirect}&response_type=code&scope=identify%20guilds%20email,

什么时候id = client id in string typeredirect = (above) the url

谢谢你的帮助。

编辑 1:有意将 redirect_uri 设置为错误的 URL,发送一条 JSON 消息说“格式错误的 redirect_uri”。(不是屏幕截图上可见的那个!)

编辑2:示例完整网址: https://discordapp.com/oauth2/authorize?client_id=528972063096963140&redirect_uri=http%3A%2F%2Flocalhost%2Fdiscord%2Fcallback&response_type=code&scope=identify%20guilds%20email

hey*_*sad 13

我今天遇到了这个问题,经过一段时间的调试,我发现我做错了什么。

当我在Discord上注册我的应用程序时,它要求我提供一个redirect_uri我们需要指定的名称,以便 Discord只能允许这些 url从登录页面重定向。但是在我的项目上摆弄了一段时间后,我从节点更改了重定向 url,这与我在 Discord 上指定的不匹配。这就是为什么这个问题突然出现在我身上。

我的不和谐开发者仪表板的屏幕截图(更改此重定向网址):

在此处输入图片说明

修复:转到Discord并更新您的新重定向网址(根据您的需要)。这将修复您面临的登录页面上的错误。请记住通过在字段中按 Enter 或按页面底部弹出的保存按钮来保存。

希望我能帮上忙!


Ryu*_* S. 13

使用 Next-Auth 时,我成功地将重定向 Url 在不和谐设置中设置为http://localhost:3000/api/auth/callback/discord


Shy*_*yne 11

我知道这个问题已经解决了很长时间,但我添加这个以防有人遇到这个问题并且不知道发生了什么。

  1. 必须在您的不和谐 oauth2 应用程序重定向redirect_uri中注册(有关更多详细信息,请参阅接受的答案)。
  2. redirect_uri必须与前面提到的列表中的完全相同:查询字符串将不起作用
  3. 调用https://discord.com/api/oauth2/token端点时,该redirect_uri字段必须与用于使用端点生成代码的字段相同https://discord.com/api/oauth2/authorize