public function fetchInfo() { global $srkEnv; $code = $_GET['code']; $data = (object) array('client_id' => $srkEnv->thirdPartyLogin['github']->clientId, 'client_secret' => $srkEnv->thirdPartyLogin['github']->clientSecret, 'code' => $code, 'accept' => 'json'); $postRes = decipherGetStr(webPostData('https://github.com/login/oauth/access_token', $data)); if (isset($postRes['access_token'])) { $accessToken = $postRes['access_token']; $dataStr = webGetData('https://api.github.com/user?access_token=' . $accessToken); $userInfo = json_decode($dataStr); if (!$userInfo) { return 'Data fetching error'; } $userData = (object) array('userId' => 'github_' . $userInfo->login, 'email' => $userInfo->email, 'nickname' => $userInfo->name, 'accessToken' => $accessToken, 'avatarURL' => $userInfo->avatar_url, 'source' => 'github'); $user = new UserData(); $user->registerThirdParty($userData); $writeRes = $user->writeUser(); if (!$writeRes) { $_SESSION['userId'] = $userData->userId; } return $writeRes; } else { return 'Access code error'; } }
$user = new UserData(); $user->readUser($userId); $authRes = $user->authenticate($passwd); if ($authRes === false) { $_SESSION['userId'] = $user->id; srkSend((object) array('res' => 'successful')); } else { srkSend((object) array('res' => $authRes)); } } elseif ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'register') { $user = new UserData(); $regRes = $user->register($_POST['userId'], $_POST); if ($regRes->res !== false) { srkSend($regRes); } else { $writeRes = $user->writeUser(); if ($writeRes === false) { $_SESSION['userId'] = $user->id; srkSend((object) array('res' => 'successful')); } else { srkSend((object) array('res' => 'Failed to write data')); } } } elseif ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'logout') { unset($_SESSION['userId']); srkSend((object) array('res' => 'successful')); } elseif ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'edit') { $user = new UserData(); $user->readUser($_SESSION['userId']); srkSend($user->update($_POST)); }