1. 程式人生 > >thinkphp3.2開發網頁實現第三方登錄

thinkphp3.2開發網頁實現第三方登錄

uestc span callback == pen err error lib user

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開發網頁實現第三方登錄