09/09
2017
Wallogit.com
2017 © Pedro Peláez
thinkphp 3.x weixin weibo qq sns oauth
thinkphp 3.x 第三方登录扩展包 目前支持(QQ登录,新浪登录,微信登录), (*1)
确保已经安装composer 否则无法执行, (*2)
composer require cocolait/sys_oauth
找到index.php入口文件 在框架引入之前加载composer即可, (*3)
// 加载composer require './vendor/autoload.php'; // 引入ThinkPHP入口文件 require './ThinkPHP/ThinkPHP.php';
<?php
return [
//腾讯QQ登录配置
'SYA_AUTH_QQ' => [
'APP_KEY' => '', //应用注册成功后分配的 APP ID
'APP_SECRET' => '', //应用注册成功后分配的KEY
'CALLBACK' => '', // 应用回调地址
],
//新浪微博配置
'SYA_AUTH_SINA' => [
'APP_KEY' => '', //应用注册成功后分配的 APP ID
'APP_SECRET' => '', //应用注册成功后分配的KEY
'CALLBACK' => '', // 应用回调地址
],
//微信登录
'SYA_AUTH_WEIXIN' => [
'APP_KEY' => '', //应用注册成功后分配的 APP ID
'APP_SECRET' => '', //应用注册成功后分配的KEY
'CALLBACK' => "", //应用回调地址
]
);
thinkPHP 3.2.3 为例 php >= 5.3 或者 thinkphp 3.x都支持, (*4)
namespace Home\Controller;
use Think\Controller;
class OauthController extends Controller {
//登录地址
//目前type参数 只支持 [qq,sina,weixin]
public function login($type = null){
empty($type) && $this->error('参数错误');
$_SESSION['login_http_referer']=$_SERVER["HTTP_REFERER"];
$sns = \Cp\Sys\Oauth::getInstance($type);
//跳转到授权页面
redirect($sns->getRequestCodeURL());
}
//授权回调地址
public function callback($type = null, $code = null){
(empty($type)) && $this->error('参数错误');
if(empty($code)){
redirect(__ROOT__."/");
}
$sns = \Cp\Sys\Oauth::getInstance($type);
$extend = null;
// 获取TOKEN
$token = $sns->getAccessToken($code , $extend);
//获取当前第三方登录用户信息
if(is_array($token)){
$user_info = \Cp\Sys\GetInfo::getInstance($type,$token);
var_dump($user_info);
}else{
echo "获取基本信息失败";
}
}
}