插件窝 资源共享 集成QQ和微信登陆的拓展代码包

集成QQ和微信登陆的拓展代码包

vip下载 qq登陆 微信 登陆 拓展包 7364    2019-09-30

1说明

本教程集成了微信和QQ登陆一个包部署即可实现两种快捷登陆模式,本教程完美兼容tp5框架,如果是其他框架在获取配置文件上的方法需要一个小改动,如下图所示,修改ThinkOauth.php文件:改成对应框架获取 配置文件配置的方法既可

image.png

2放置拓展包:

把下载资源包中的sdk文件夹放到框架的拓展目录里,如图所示:

image.png

image.png

3放置配置包:

这里的放置目录是根据tp5框架截图的,如果是其他框架请根据自己的框架结构放置拓展包

1569830966340251.png

1569831052838666.png

4修改配置:

最后把你申请的微信开放平台和QQ开放平台的应用app_key和app_secret填入配置文件中

5前端代码:

登陆页面两个图标按钮加上class和onclick属性如图所示:

1569833078305964.png

js代码:其他框架的url生成自行修改

1569833112430987.png

6后端php代码:

public function qqLogin($type=null){
   if($type){
       $sns = \loginsdk\ThinkOauth::getInstance($type);//注意引入拓展包的类路径正确
       $this->redirect($sns->getRequestCodeURL());
       //echo $sns->getRequestCodeURL();
       header("Location:".$sns->getRequestCodeURL());
   }else{
       $this->redirect('index');
   }
}

7后端代码和回调方法:

注意,这里的 访问地址 需要在配置开放平台的申请应用的时候填上的,否则授权之后不会自动转跳到这个回调地址上面来

public function callback($type = null, $code = null) {
   header("Content-type: text/html; charset=utf-8");
   (empty($type) || empty($code)) && $this->error('参数错误');
   $sns = \loginsdk\ThinkOauth::getInstance($type);

   $tokenArr = $sns->getAccessToken($code);
   $openid   = trim($tokenArr['openid']);
   if ($openid) {
       dump($tokenArr);//这里会返回授权成功之后的返回参数,然后你自己写逻辑层
   } else {
       $this->error('系统出错,请稍后再试!',url('user.login/index'));
   }
}