查看文章
服务器配置方面易引起Discuz论坛绑定及解绑QQ账号错误的地方

Discuz论坛添加QQ登录功能非常方便,可以通过Disucz云平台直接安装,所以在程序开发方面,应该是没有什么错误的,如果在登录QQ和解绑QQ中出现问题,大多是由于服务器配置不当,导致与QQ登录开放平台无法通讯造成的。

经炫彩网络工程师研读Discuz代码后整理出相关必须使用的通讯接口列出如下:

  1. openapi.qzone.qq.com

  2. api.discuz.qq.com

 1 接口用于QQ登录绑定,2 接口用于解绑。

如接口无法使用,请在服务器中检测是否两个主机头无法从DNS取得解析IP。如果服务器设置了出口防火墙,请将两个接口对应的解析IP添加至防火墙白名单中放行。

 

由于discuz云平台的问题,虽然通讯正常,解绑过程可能也返回错误,此时需要通过修改源代码的方式才能解决。

 

解绑过程中使用的函数 connect_user_unbind() 具体实现在:source/function/function_connect.php 文件的第 54 行,此函数向discuz的平台发送解绑请求,并获取返回结果。

返回结果的读取,在 source/module/connect/connect_config.php 文件的 unbind 流程中。

找到第 55 行,此行对返回结果进行判断,而出现解绑错误的原因是由于discuz云平台,而不是在QQ登录平台,所以需要将此判断删除,不管discuz云平台是否返回正确结果,都继续执行解绑操作。

如此修改源代码:

将第 54 行 $response = connect_user_unbind();  结尾按回车新起一行,输入:

$response = array('status'=>0);

此操作将返回结果设置为0,则不管是否返回成功,都继续正常在本网站数据库中解绑,用户才可继续绑定新的QQ。

 

天翼云主机
香港云主机