1说明:
本教程集成了微信和QQ登陆一个包部署即可实现两种快捷登陆模式,本教程完美兼容tp5框架,如果是其他框架在获取配置文件上的方法需要一个小改动,如下图所示,修改ThinkOauth.php文件:改成对应框架获取 配置文件配置的方法既可
2放置拓展包:
把下载资源包中的sdk文件夹放到框架的拓展目录里,如图所示:
3放置配置包:
这里的放置目录是根据tp5框架截图的,如果是其他框架请根据自己的框架结构放置拓展包
4修改配置:
最后把你申请的微信开放平台和QQ开放平台的应用app_key和app_secret填入配置文件中
5前端代码:
登陆页面两个图标按钮加上class和onclick属性如图所示:
js代码:其他框架的url生成自行修改
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'));
}
}