我目前正在为我的Web应用程序开发Discord OAuth2客户端。
无论我如何努力设置redirect_uri以使discord不发送错误,我都无法修复它,并且我一直收到以下消息:
无效的OAuth2 redirect_uri:现在可以关闭此选项卡。
x1c 0d1x(对不起第二行的外语)
我的重定向URI为(_U):.com
(the网站存在于服务器上,并正常工作。)
我尝试了很多组合,包括:- 添加https://而不是http://-将.com
添加到域中-在单词callback
后添加斜杠-使用普通字符串而不是encodeURIComponent -通过Discord开发人员页面生成oauth2 redirect_uri
唯一起作用的是从URL参数中完全删除redirect_uri,这使得应用程序可以工作,但之后不能重定向到正确的位置;
(This是我的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 type
和redirect = (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
3条答案
按热度按时间yb3bgrhw1#
我知道这是解决了很长一段时间,但我添加这个以防有人有这个问题,不知道发生了什么:如果你要调用
https://discord.com/api/oauth2/token
端点来解析一个代码到一个令牌,你必须让redirect_uri
字段和用https://discord.com/api/oauth2/authorize
端点生成代码的那个字段相同,否则你会得到这个错误。它还必须和你的应用程序的重定向列表中的一个重定向完全相同(查询字符串不起作用)。brqmpdu12#
当使用下一个验证时,我成功地将不一致设置中的重定向URL设置为
http://localhost:3000/api/auth/callback/discord
lxkprmvk3#
我今天得到了这个问题,在调试了一段时间后,我发现我做错了什么。
当我在Discord上注册我的应用程序时,它要求我提供一个
redirect_uri
,我们需要指定它,这样Discord才能只允许这些url从登录页面重定向。但是在我的项目上做了一段时间的修改后,我从节点更改了重定向url,这与我在Discord上指定的不匹配。这就是为什么这个问题突然出现在我面前。来自我的Discord开发者 Jmeter 板的屏幕截图(更改此重定向URL):
修正:转到Discord并更新您的新重定向网址(根据您的需要)。这将修正您在登录页面上遇到的错误。请记住通过在字段中按回车键或按页面底部弹出的保存按钮来保存。
希望我能帮忙!