程序版本thinkphp3.2
第三方登录composer: https://packagist.org/packages/fakerpp/oauthsdk
打开项目下的composer.json文件中增加一段
"require": {
"php": ">=5.3.0",
"fakerpp/oauthsdk": "~1.0"
},
使用命令安装第三方登录包
composer update
控制器添加对应代码
<?php
namespace Home\Controller;
require $_SERVER['DOCUMENT_ROOT'].__ROOT__.'/vendor/autoload.php';
class LoginController extends Controller
{
public function displaywxcode(){
$config = $this->dsfconfig();
$sns = \OauthSDK\Oauth::getInstance('wechat',$config);
header('Location: ' . $sns->getRequestCodeURL());
}
//微信登录
public function wechat($code, $type){
$config = $this->dsfconfig();
$sns = \OauthSDK\Oauth::getInstance($type,$config);
$tokenArr = $sns->getAccessToken($code);
$openid = $tokenArr['openid'];
$token = $tokenArr['access_token'];
//获取当前登录用户信息
$userinfo = $userInfo = $sns->getUserInfo();
dump($userinfo);
}
public function dsfconfig()
{
$config = array(
//腾讯QQ登录配置
'QQ' => array(
'APP_KEY' => '123456', //应用注册成功后分配的 APP ID
'APP_SECRET' => '9cc9ac2fb17d010104d8a58dbebb4d3a', //应用注册成功后分配的KEY
'CALLBACK' => 'http://www.example.com/callback.php?type=qq',//回调URL
),
//新浪微博配置
'SINA' => array(
'APP_KEY' => '123456', //应用注册成功后分配的 APP ID
'APP_SECRET' => '9cc9ac2fb17d010104d8a58dbebb4d3a', //应用注册成功后分配的KEY
'CALLBACK' => 'http://www.example.com/callback.php?type=sina',//回调URL
),
//腾讯微信配置
'WECHAT' => array(
'APP_KEY' => 'wx8fb244a7b8ba7573', //应用注册成功后分配的 APP ID
'APP_SECRET' => '193ba5ae27eb2db5db52822f8c66f4ba', //应用注册成功后分配的KEY
'CALLBACK' => 'http://www.kuaishou365.com/Home/Login/wechat.html?type=wechat',//回调URL
)
);
return $config;
}
}
返回结果中没有unionid
打开文件vendor\fakerpp\oauthsdk\src\sdk\WechatSDK.php搜索下面一段代码
public function getUserInfo(){
在这个方法里增加下面一段
$data['unionid'] = $response['unionid'];