indexAction 控制器里面
/** * qq登陆 */ public function QQLogin() { mysdk_Log::log('ThreeLoginPlatform', $_POST, mysdk_Log::LIVE_API, __FILE__, __LINE__); $openid = trim(I('openid', null)); $token = trim(I('token')); $device = trim(I('device')); $nickname = trim(I('nickname')); $userPhoto = trim(I('userPhoto')); if (!isset($userPhoto) || $userPhoto == '') { $userPhoto = C('PIC_MONGOC_HOST') . C('Default_avatar'); } if (!$openid || !$token || !$device || !$nickname || !$userPhoto) { json_return_array(array('resultcode' => 410, 'errormsg' => '', 'result' => '')); } $result = D('User')->LoginThreePlatform(1, array('openid' => $openid, 'token' => $token, 'device' => $device, 'nickname' => $nickname, 'userPhoto' => $userPhoto)); json_return_array($result); //return $this->BackJson($result); } /** * 微博登陆 */ public function WeiBoLogin() { mysdk_Log::log('ThreeLoginPlatform', $_POST, mysdk_Log::LIVE_API, __FILE__, __LINE__); $openid = trim(I('openid', null)); $token = trim(I('token')); $device = trim(I('device')); $nickname = trim(I('nickname')); $userPhoto = trim(I('userPhoto')); if (!isset($userPhoto) || $userPhoto == '') { $userPhoto = C('PIC_MONGOC_HOST') . C('Default_avatar'); } if (!$openid || !$token || !$device || !$nickname || !$userPhoto) { json_return_array(array('resultcode' => 410, 'errormsg' => '', 'result' => '')); }
/** * 微信登陆 */ public function WeiXinLogin() { $response = array( 'resultcode' => 400, 'errormsg' => '程序版本过期,请升级', 'result' => array() ); json_return_array($response); mysdk_Log::log('ThreeLoginPlatform', $_POST, mysdk_Log::LIVE_API, __FILE__, __LINE__); $openid = trim(I('openid', null)); $token = trim(I('token')); $device = trim(I('device')); $nickname = trim(I('nickname')); $userPhoto = trim(I('userPhoto')); if (!isset($userPhoto) || $userPhoto == '') { $userPhoto = C('PIC_MONGOC_HOST') . C('Default_avatar'); } if (!$openid || !$token || !$device || !$nickname || !$userPhoto) { json_return_array(array('resultcode' => 410, 'errormsg' => '', 'result' => '')); } $result = D('User')->LoginThreePlatform(2, array('openid' => $openid, 'token' => $token, 'device' => $device, 'nickname' => $nickname, 'userPhoto' => $userPhoto)); mysdk_Log::log('ThreeLoginPlatform', $result, mysdk_Log::LIVE_API, __FILE__, __LINE__); json_return_array($result); //return $this->BackJson($result); }
UserModel 里面
function LoginThreePlatform($type, $loginInfo) { $response = array( 'resultcode' => 200, 'errormsg' => '', 'result' => array() ); Vendor('ThreeLoginOAuth.OAuth'); switch ($type) { case 1: $OAuthObj = OAuth::validateUserToken('QQ', $loginInfo); if (false == $OAuthObj) { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); $response['resultcode'] = 409; return $response; } break; case 3: $OAuthObj = OAuth::validateUserToken('Weibo', $loginInfo); if (false == $OAuthObj) { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); $response['resultcode'] = 409; return $response; } break; case 2: $OAuthObj = OAuth::validateUserToken('Weixin', $loginInfo); if (false == $OAuthObj) { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); $response['resultcode'] = 409; return $response; } break; default: return false; } $openid = $loginInfo['openid']; $token = $loginInfo['token']; $device = $loginInfo['device']; $nickName = $loginInfo['nickname']; $userPhoto = $loginInfo['userPhoto']; $ret = D('DataCenter')->sdkLogin($nickName, $openid, $userPhoto, $device, $type); if ($ret) { $ret['openid'] = $openid; $response['result'] = $ret; } else { $response['resultcode'] = 404; //数据中心返回false return $response; } $where['usertt'] = $ret['TTnum']; $where['userid'] = $ret['userID']; $user = M('MemberInfo')->where($where)->find(); mysdk_Log::log('ThreeLoginPlatform', "find userinfo:" . json_encode($user), mysdk_Log::LIVE_API, __FILE__, __LINE__); if (empty($user)) { $initdate = array(); $initdate ['userid'] = $ret['userID']; $initdate ['vip_grow'] = 0; $initdate ['downscore'] = 0; $initdate ['usertt'] = $ret['TTnum']; mysdk_Log::log('ThreeLoginPlatform', "add new userinfo:" . json_encode($initdate), mysdk_Log::LIVE_API, __FILE__, __LINE__); $initmember_info = M('MemberInfo')->add($initdate); if (!$initmember_info) { mysdk_Log::log('ThreeLoginPlatform', "add new user " . $ret['userID'] . " failed", mysdk_Log::LIVE_API, __FILE__, __LINE__); $response['resultcode'] = 406; return $response; } mysdk_Log::log('ThreeLoginPlatform', "add new user " . $ret['userID'] . " successfully", mysdk_Log::LIVE_API, __FILE__, __LINE__); mysdk_RMS::setUserInfo($ret ['userID']); } mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); return $response; }
<?php class WeixinOAuth extends OAuth { private $WEIXINGETOPENIDURL = "https://api.weixin.qq.com/sns/userinfo"; /* * *$info=array( *token, *openid, * *) * */ function validateToken(&$info) { $token = $info['token']; $openid = $info['openid']; mysdk_Log::log('ThreeLoginPlatform', $info, mysdk_Log::LIVE_API, __FILE__, __LINE__); $response = $this->http($this->WEIXINGETOPENIDURL, array('openid' => $openid, 'access_token' => $token)); $data = json_decode($response, true); mysdk_Log::log('ThreeLoginPlatform', $data, mysdk_Log::LIVE_API, __FILE__, __LINE__); if (!isset($data['openid']) || $data['openid'] != $openid) { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); return false; } else { $info['openid'] = $data['unionid']; return true; } } } ?>
QQ登陆
<?php class QQOAuth extends OAuth { private $AppKey = '101200000'; private $AppSecret = '0dda7ff5c3c36ecaa22cce5208500000'; private $QQGETOPENIDURL = "https://graph.qq.com/oauth2.0/me"; function validateToken(&$info) { $token = $info['token']; $openid = $info['openid']; mysdk_Log::log('ThreeLoginPlatform', $info, mysdk_Log::LIVE_API, __FILE__, __LINE__); $response = $this->http($this->QQGETOPENIDURL, array('access_token' => $token)); $data = json_decode(trim(substr($response, 9), " );\n"), true); mysdk_Log::log('ThreeLoginPlatform', $data, mysdk_Log::LIVE_API, __FILE__, __LINE__); if (!isset($data['openid']) || $data['openid'] != $openid) { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); return false; } else { return true; } } }
微博登陆
<?php class WeiboOAuth extends OAuth { private $AppKey = '101201000'; private $AppSecret = '0dda7ff5c3c36ecaa22cce52085000'; private $WEIBOGETOPENIDURL = "https://api.weibo.com/oauth2/get_token_info"; function validateToken(&$info) { $token = $info['token']; $openid = $info['openid']; mysdk_Log::log('ThreeLoginPlatform', $info, mysdk_Log::LIVE_API, __FILE__, __LINE__); $response = $this->http($this->WEIBOGETOPENIDURL, array('access_token' => $token), 'post'); $data = json_decode($response, true); mysdk_Log::log('ThreeLoginPlatform', $response, mysdk_Log::LIVE_API, __FILE__, __LINE__); if (isset($data['uid']) && ($data['uid'] == $openid)) { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); return true; } else { mysdk_Log::log('ThreeLoginPlatform', __LINE__, mysdk_Log::LIVE_API, __FILE__, __LINE__); return false; } } } ?>
1. 相关文件以及路径
图一