HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.fpngv.com/addons/synclogin/ThinkSDK/GetInfo.php
<?php
// +----------------------------------------------------------------------
// | Yzncms [ 御宅男工作室 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2018 http://yzncms.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 御宅男 <530765310@qq.com>
// +----------------------------------------------------------------------
/**
 * 获取第三方用户信息类
 */
namespace addons\synclogin\ThinkSDK;

final class GetInfo
{
    public static function getInstance($type, $token)
    {
        return self::$type($token);
    }
    //QQ用户信息
    public static function qq($token)
    {
        $qq = Oauth::getInstance('qq', $token);
        $data = $qq->call('user/get_user_info');
        if ($data['ret'] == 0) {
            $userInfo['type'] = 'qq';
            $userInfo['name'] = $data['nickname'];
            $userInfo['nickname'] = $data['nickname'];
            $userInfo['avatar'] = $data['figureurl_2'];
            $userInfo['gender'] = $data['gender'];
            return $userInfo;
        } else {
            throw new \Exception("获取腾讯QQ用户信息失败:{$data['msg']}");
        }
    }
    //微信用户信息
    public static function weixin($token)
    {
        $weixin = Oauth::getInstance('weixin', $token);
        $data = $weixin->call('sns/userinfo');
        if (isset($data['errcode'])) {
            throw new \Exception("获取微信用户信息失败:errcode:{$data['errcode']} errmsg: {$data['errmsg']}");
        }
        if ($data['openid']) {
            $userInfo['type'] = 'weixin';
            $userInfo['name'] = $data['nickname'];
            $userInfo['nickname'] = $data['nickname'];
            $userInfo['avatar'] = $data['headimgurl'];
            $userInfo['openid'] = $data['openid'];
            $userInfo['unionid'] = $data['unionid'];
            $userInfo['province'] = $data['province'];
            $userInfo['city'] = $data['city'];
            $userInfo['country'] = $data['country'];
            $userInfo['sex'] = $data['sex'] == 1 ? '男' : '女';
            return $userInfo;
        } else {
            throw new \Exception("获取微信用户信息失败");
        }
    }
    //新浪微博用户信息
    public static function sina($token)
    {
        $sina = Oauth::getInstance('sina', $token);
        $data = $sina->call('users/show', "uid={$sina->openid()}");
        if ($data['id']) {
            $userInfo['type'] = 'sina';
            $userInfo['name'] = $data['name'];
            $userInfo['nickname'] = $data['screen_name'];
            $userInfo['avatar'] = $data['avatar_large'];
            $userInfo['openid'] = $data['id'];
            $userInfo['idstr'] = $data['idstr'];
            $userInfo['province'] = $data['province'];
            $userInfo['city'] = $data['city'];
            $userInfo['location'] = $data['location'];
            $userInfo['created_at'] = $data['created_at'];
            $userInfo['gender'] = $data['gender'] == 'm' ? '男' : ($data['gender'] == 'f' ? '女' : '未知');
            $userInfo['followers_count'] = $data['followers_count'];
            $userInfo['friends_count'] = $data['friends_count'];
            $userInfo['statuses_count'] = $data['statuses_count'];
            $userInfo['favourites_count'] = $data['favourites_count'];
            $userInfo['description'] = $data['description'];
            $userInfo['url'] = $data['url'];
            $userInfo['profile_url'] = $data['profile_url'];
            return $userInfo;
        } else {
            throw new \Exception("获取新浪微博用户信息失败:{$data['error']}");
        }
    }
    //Baidu用户信息
    public static function baidu($token)
    {
        $baidu = Oauth::getInstance('baidu', $token);
        $data = $baidu->call('passport/users/getInfo');
        if (isset($data['userid'])) {
            $userInfo['type'] = 'baidu';
            $userInfo['name'] = $data['username'];
            $userInfo['nickname'] = isset($data['realname']) ? $data['realname'] : '';
            $userInfo['avatar'] = 'http://tb.himg.baidu.com/sys/portrait/item/' . $data['portrait'];
            $userInfo['openid'] = $data['userid'];
            $userInfo['sex'] = $data['sex'] == 1 ? '男' : '女';
            return $userInfo;
        } else {
            throw new \Exception("获取Baidu用户信息失败");
        }
    }
    //Gitee用户信息
    public static function gitee($token)
    {
        $google = Oauth::getInstance('gitee', $token);
        $data = $google->call('user');
        if (isset($data['id'])) {
            $userInfo['type'] = 'gitee';
            $userInfo['name'] = $data['name'];
            $userInfo['nickname'] = $data['login'];
            $userInfo['avatar'] = $data['avatar_url'];
            $userInfo['openid'] = $data['id'];
            $userInfo['html_url'] = $data['html_url'];
            $userInfo['blog'] = $data['blog'];
            $userInfo['email'] = $data['email'];
            return $userInfo;
        } else {
            throw new \Exception("获取Gitee用户信息失败");
        }
    }
    //Github用户信息
    public static function github($token)
    {
        $google = Oauth::getInstance('github', $token);
        $data = $google->call('user');
        if (isset($data['id'])) {
            $userInfo['type'] = 'github';
            $userInfo['name'] = $data['name'];
            $userInfo['nickname'] = $data['login'];
            $userInfo['avatar'] = $data['avatar_url'];
            $userInfo['openid'] = $data['id'];
            $userInfo['html_url'] = $data['html_url'];
            $userInfo['blog'] = $data['blog'];
            $userInfo['email'] = $data['email'];
            return $userInfo;
        } else {
            throw new \Exception("获取Gitee用户信息失败");
        }
    }
    //Google用户信息
    public static function google($token)
    {
        $google = Oauth::getInstance('google', $token);
        $data = $google->call('userinfo');
        if (isset($data['id'])) {
            $userInfo['type'] = 'google';
            $userInfo['name'] = $data['name'];
            $userInfo['nickname'] = $data['name'];
            $userInfo['avatar'] = $data['picture'];
            $userInfo['openid'] = $data['id'];
            $userInfo['given_name'] = $data['given_name'];
            $userInfo['family_name'] = $data['family_name'];
            $userInfo['locale'] = $data['locale'];
            $userInfo['email'] = $data['email'];
            return $userInfo;
        } else {
            throw new \Exception("获取Google用户信息失败");
        }
    }
    //Facebook用户信息
    public static function facebook($token)
    {
        $facebook = Oauth::getInstance('facebook', $token);
        $data = $facebook->call('me', 'fields=name,picture,first_name,last_name,short_name,email');
        if (isset($data['id'])) {
            $userInfo['type'] = 'facebook';
            $userInfo['name'] = $data['name'];
            $userInfo['nickname'] = $data['name'];
            $userInfo['avatar'] = $data['picture']['data']['url'];
            $userInfo['openid'] = $data['id'];
            $userInfo['first_name'] = $data['first_name'];
            $userInfo['last_name'] = $data['last_name'];
            $userInfo['short_name'] = $data['short_name'];
            $userInfo['email'] = $data['email'];
            return $userInfo;
        } else {
            throw new \Exception("获取Facebook用户信息失败");
        }
    }
    //Oschina用户信息
    public static function oschina($token)
    {
        $oschina = Oauth::getInstance('oschina', $token);
        $data = $oschina->call('action/openapi/user');
        if (isset($data['id'])) {
            $userInfo['type'] = 'gitee';
            $userInfo['name'] = $data['name'];
            $userInfo['nickname'] = $data['name'];
            $userInfo['avatar'] = $data['avatar'];
            $userInfo['openid'] = $data['id'];
            $userInfo['email'] = $data['email'];
            $userInfo['location'] = $data['location'];
            return $userInfo;
        } else {
            throw new \Exception("获取Gitee用户信息失败");
        }
    }
    //Taobao用户信息
    public static function taobao($token)
    {
        $data = $token;
        if (isset($data['taobao_user_id'])) {
            $userInfo['type'] = 'taobao';
            $userInfo['name'] = urldecode($data['taobao_user_nick']);
            $userInfo['nickname'] = urldecode($data['taobao_user_nick']);
            $userInfo['avatar'] = '';
            $userInfo['openid'] = $data['taobao_user_id'];
            $userInfo['taobao_open_uid'] = $data['taobao_open_uid'];
            return $userInfo;
        } else {
            throw new \Exception("获取淘宝用户信息失败");
        }
    }
}