thinkphp3.2开发网页实现第三方登录
Posted 裸奔的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp3.2开发网页实现第三方登录相关的知识,希望对你有一定的参考价值。
1.在要添加登录的html里添加登录按钮:
<a href="{:U(‘Public/login/‘,array(‘type‘=>‘weixin‘))}"><img src="__IMG__/weixin.png" alt="微信按钮" /> </a>(这里只写了微信,QQ,微博...只需修改type值与图片即可)
2.登录方法:
public function login($type=null) {
empty($type) && $this->error(‘参数错误‘);
//加载ThinkOauth类并实例化一个对象
import("ORG.ThinkSDK.ThinkOauth");
//跳转到授权页
redirect($sns->getRequestCodeURL());
}
//授权回调地址
public function callback(){
(empty($type) || empty($code)) && $this->error(‘参数错误‘);
//加载ThinkOauth类并实例化一个对象
import("ORG.ThinkSDK.ThinkOauth");
$sns=ThinkOauth::getInstance($type);
//腾讯微博需传递参数
$extend=null;
if($type==‘tencent‘){
$extend=array(‘openid‘=>$this->_get(‘openid‘),‘openkey‘=>$this->_get(‘‘openkey));
}
//请妥善保管这里获取到的Token信息,方便以后API调用
//调用方法,实例化SDK对象的时候直接作为构造函数的第二个参数传入
//如: $qq = ThinkOauth::getInstance(‘qq‘, $token);
$token = $sns->getAccessToken($code , $extend);
//获取当前登录用户信息
if(is_array($token)){
$user_info = A(‘Type‘, ‘Event‘)->$type($token);
echo("<h1>恭喜!使用 {$type} 用户登录成功</h1><br>");
echo("授权信息为:<br>");
dump($token);
echo("当前登录用户信息为:<br>");
dump($user_info);
}
}
3.下载sdk,把sdk文件夹和ThinkOauth.class.php放在ThinkPHP\Library\Org\ThinkSDK下
4.在config.php加:
//微信登录
‘THINK_SDK_WEIXIN‘ => array(
‘APP_KEY‘ => ‘‘, //应用注册成功后分配的 APP ID
‘APP_SECRET‘ => ‘‘, //应用注册成功后分配的KEY
‘CALLBACK‘ => URL_CALLBACK . ‘weixin‘,
),
//腾讯QQ登录配置
‘THINK_SDK_QQ‘ => array(
‘APP_KEY‘ => ‘‘, //应用注册成功后分配的 APP ID
‘APP_SECRET‘ => ‘‘, //应用注册成功后分配的KEY
‘CALLBACK‘ => URL_CALLBACK . ‘qq‘,
),
//新浪微博配置
‘THINK_SDK_SINA‘ => array(
‘APP_KEY‘ => ‘‘, //应用注册成功后分配的 APP ID
‘APP_SECRET‘ => ‘‘, //应用注册成功后分配的KEY
‘CALLBACK‘ => URL_CALLBACK . ‘sina‘,
)
5.调试完成
以上是关于thinkphp3.2开发网页实现第三方登录的主要内容,如果未能解决你的问题,请参考以下文章