/** * Show the special page * * @param $params Mixed: parameter(s) passed to the page or null */ public function execute($params) { $out = $this->getOutput(); $request = $this->getRequest(); $code = $request->getVal('code'); // Set the page title, robot policies, etc. $this->setHeaders(); if (empty($_GET['code'])) { $out->setPageTitle($this->msg('complete_user_error')->plain()); return false; } $qq_sdk = new QqSdk(); // $token = $qq_sdk->get_access_token($code,Confidential::$qq_app_id,Confidential::$qq_app_secret); // print_r($token);die; $open_id = $qq_sdk->get_open_id($code); if (array_key_exists('openid', $open_id)) { $user_info = $qq_sdk->get_user_info($code, $open_id['openid'], Confidential::$qq_app_id); if ($user_info['gender'] == '男') { $gender = 'male'; } elseif ($user_info['gender'] == '女') { $gender = 'female'; } else { $gender = null; } $output = "<span>您当前使用的第三方账号登录,建议您绑定官方账号更有利于您的账户安全!</span>"; $output .= "<form><label for='qqloginname'>用户名</label><input type='text' id='qqloginusername' class='form-control' value='" . $user_info['nickname'] . "' name='qqloginname'>\r\n\t\t\t\t<label for='qqloginemail'>邮箱</label><input type='email' class='form-control' id='qqloginemail' placeholder=\"请输入邮箱\" name='qqloginemail'>\r\n\t\t\t\t<label for='qqloginpass'>密码</label><input type='password' id='qqloginpassword' class='form-control' placeholder=\"请输入密码\" name='qqloginpass'> \r\n\t\t\t\t<input id='qqOpenId' type='hidden' value='" . $open_id['openid'] . "' >\r\n\t\t\t\t<input id='userGender' type='hidden' value='" . $gender . "' >\r\n\t\t\t\t<input id='userAvatar' type='hidden' value='" . $user_info['figureurl_qq_1'] . "' >\r\n\t\t\t\t<div class='mw-ui-button mw-ui-block mw-ui-constructive' id='qqConfirm'>提交</div></form>"; } else { $out->setPageTitle($this->msg('complete_user_error')->plain()); return false; } $out->addHTML($output); }
/** * Show the special page * * @param $params Mixed: parameter(s) passed to the page or null */ public function execute($params) { $request = $this->getRequest(); $code = $request->getVal('code'); $qq_sdk = new QqSdk(); $token = $qq_sdk->get_access_token($code, Confidential::$qq_app_id, Confidential::$qq_app_secret); $open_id = $qq_sdk->get_open_id($token['access_token']); $checkRes = $qq_sdk->checkOauth($open_id['openid'], 'qq'); if ($checkRes == null) { header('Location: http://huiji.wiki/wiki/special:completeuserinfo?code=' . $token['access_token']); exit; } else { // success login redirect to index $user = User::newFromId($checkRes); $user->setCookies(null, null, true); header('Location: http://huiji.wiki/wiki/%E9%A6%96%E9%A1%B5?loggingIn=1'); exit; } }