QQ互联登录回调错误redirect uri is illegal(100010)的解决方法
创意设计

QQ互联登录回调错误redirect uri is illegal(100010)的解决方法

相信很多站长或是做网站管理的朋友,可能都遇到过使用QQ互联登录网站时,出现回调错误redirect uri is illegal(100010)的提示,如下图:

QQ互联登录回调错误redirect uri is illegal(100010)的解决方法

QQ互联登录回调错误redirect uri is illegal(100010)的解决方法

在出现上述问题后,第一反应可能是点击报错或者是查看解决方案,QQ互联和腾讯开放平台给出的资料内容如下:

QQ互联(http://wiki.connect.qq.com/%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E4%BF%AE%E6%94%B9%E6%96%B9%E6%B3%95

QQ互联登录回调错误redirect uri is illegal(100010)的解决方法

回调地址常见问题及修改方法

1. 什么是回调地址?

用户点击QQ登录跳转到QQ登录页面,登录成功后,应该跳转回网站。回调地址即在这里用来指定跳转回网站的URL。回调地址注册的目的是为了保障第三方APPID帐户的安全,以免被其他恶意网站盗用。需注意:1. 需要填写到站点接收qq登录信息的接口 例如:http://网站首页域名/api/oauth/QQ/callback.php ;2. 具体跳转URL将在程序中指定路径以及请求参数进行构造。

2.什么样的回调地址才满足加强校验的条件?

QQ互联登录返回给开发商的code,会传到开发商指定的专门处理code的URL,而不是域名下任意的URL,举个例子
1). 比如开发商处理QQ互联返回的Code的URL是
https://account.example.com/connect/callback/qq
2). 但是开发商在互联官网注册的回调地址是:example.com,因此属于不符合要求的回调地址。
3). 开发商需要到QQ互联官网上,把回调地址修改为把https://account.example.com/connect/callback/qq, 并去掉example.com。
4). 如果有多个回调地址的需求,可以多个回调,使用";"隔开,如"https://account.example.com/connect/callback/qq;https://account.example.com/connect/qc"

3. 回调地址错误的原因有哪些?

回调地址错误,会返回错误码:100010。 回调地址错误的原因如下: (1)没有传入域名; (2)传入的域名与申请接入时填写的回调地址域名冲突。 例如:申请时填写的回调地址是:http://example.com/qqlogin,传入的是http://example.com则会返回错误码,需保证填写的回调地址和请求的一致。

腾讯开放平台(http://wiki.open.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E4%BF%AE%E6%94%B9%E6%96%B9%E6%B3%95

QQ互联登录回调错误redirect uri is illegal(100010)的解决方法

【QQ登录】回调地址常见问题及修改方法

1. 什么是回调地址域名?

用户点击QQ登录跳转到QQ登录页面,登录成功后,应该跳转回网站。回调地址即在这里用来指定跳转回网站的URL。
回调地址注册的目的是为了保障第三方APPID帐户的安全,以免被其他恶意网站盗用。 
申请时需注意:
1. 只需要填写站点根域名即可
2. 如有多个站点同时使用该APPID,可以注册多个根域名,用分号隔开;
3. 具体跳转URL将在程序中指定路径以及请求参数进行构造。

例如:

申请时填写的callback是:mysite.com;example.com

合法的回调地址可以是:http://bbs.mysite.com/qqlogin.php?a=1

也可以是:http://www.example.com/qqlogin.php?a=1


但是如果使用:http://www.othersite.com/qqlogin.php?a=1 ,请求将会被认为非法,因为该回调地址根域名未被注册过。

2. 回调地址错误的原因有哪些?

回调地址错误,会返回错误码:21006、100010
回调地址错误的原因如下:
(1)没有传入回调地址;
(2)传入的域名与申请接入时填写的回调地址域名冲突。
例如:申请时填写的回调地址是:http://example.com,传入的是http://qzone.qq.com/get_access_token.php?a=b, 则会返回错误码。正确的请求回调地址示例是:http://example.com?a=b&c=d
(3)请求地址超长,callback或者state需保持在500字节以内。


当初我【彭涛】在调试QQ登录出现问题后,看完上面的资料介绍后还是比较懵,总觉得简单的问题讲得有点复杂(当然,从技术的角度这样来解释没毛病)。

按照官方的解决办法进行操作,并没有解决QQ互联回调错误redirect uri is illegal(100010)的登录问题,最后联系了腾讯客服,通过咨询后,问题很快就得到了解决,解决办法如下:

1、在回调出现错误提示的页面,将浏览器地址栏里的URL复制出来,使用URL解码工具(工具可在百度搜索“URL解码”)进行在线解码,解码之后可以查看完整的回调路径地址(redirect_uri=之后到第一个&符号或者问号截止的部分);

2、修改回调地址,登录到QQ互联应用管理界面,选择应用项目对平台信息进行修改,然后进入到应用基本信息修改界面,填入解码后得到的URL回调地址即可完成。

20180731144323904.jpg

通过上面的方法就能够快速简单的解决QQ互联登录回调错误redirect uri is illegal(100010)的问题,一次通过,不需要调试第二次(除非你站点的程序编写有误)。