【问题标题】:Issue with Discord OAuth2 redirect_uri componentDiscord OAuth2 redirect_uri 组件的问题
【发布时间】:2020-05-22 09:18:46
【问题描述】:

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

无论我如何尝试设置 redirect_uri 以使 discord 不发送错误,我都无法修复它,并且我不断收到此消息:

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

(对不起第二行的外语)

我的 redirect_uri 是:

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

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

**我尝试了很多组合,包括: - 添加 https:// 而不是 http:// - 将.com 添加到域 - 在单词callback 之后添加一个斜杠 - 使用普通字符串而不是 encodeURIComponent - 通过 Discord 开发者页面生成 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

【问题讨论】:

    标签: node.js express oauth-2.0 discord


    【解决方案1】:

    我今天遇到了这个问题,调试了一段时间后,我发现我做错了。

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

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

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

    希望我能帮上忙!

    【讨论】:

      【解决方案2】:

      我知道这已经解决了很长时间,但我添加这个以防有人遇到此问题并且不知道发生了什么:如果您正在调用 https://discord.com/api/oauth2/token 端点以将代码解析为令牌,您必须使redirect_uri 字段与使用https://discord.com/api/oauth2/authorize 端点生成代码的字段相同,否则您将收到此错误。如上所述,它还必须与应用程序重定向列表中的重定向之一完全相同(查询字符串不起作用)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-14
        • 2015-03-25
        • 2021-06-29
        • 2016-09-20
        • 1970-01-01
        • 2015-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多