phpcms v9不能通过qq登录怎么办?phpcms v9集成qq登录方法

发布时间:2020-08-10编辑:脚本学堂
phpcms v9中如何集成qq登录,phpcms v9无法正常通过QQ登录网站怎么办,这里为大家提供了phpcms v9无法正常通过qq登录问题的解决方法,一起来看看。

phpcms v9不能通过qq登录怎么办?

原因分析:
phpcms v9的qq登录功能代码中,使用了file_get_contents函数来获取腾讯的https网址,这类网址是通过ssl加密传输的。

虽然,可以通过为php安装openssl扩展,让file_get_contents函数可以获取到内容,但获取到的内容还是加密的,无法正常的解密。

解决思路:
编写一个通过curl读取数据的方法,替换掉phpcms原有的方法,具体如下:

首先,找到\phpcms\modules\member\classes\qqapi.class.php文件

在这个qqapi.class.php文件的末尾添加一个名为get_ssl_content的方法,代码:
 

复制代码 代码示例:
public function get_ssl_content($url)
{
$ch = curl_init();
curl_setopt($ch, curlopt_url, $url);
curl_setopt($ch, curlopt_ssl_verifypeer, false);
curl_setopt($ch, curlopt_ssl_verifyhost, false);
$result = curl_exec($ch);
return $result;
}
 

添加好get_ssl_content方法后,再在qqapi.class.php中搜索“file_get_contents($url)”,找到所以出现的位置,然后判断对应的$url地址开头如果是https,那么就把这个函数替换为以上编写的get_ssl_content方法。

代码:
 

$content = $this->get_ssl_content($url);

至此,phpcms即可以正常通过qq来登录了