技术&日志

thinkphp安装第三方登录包

程序版本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'];

 相关资料

详情使用及github地址

TP5第三方登录代码

发表评论