示例#1
0
文件: github.php 项目: laekov/shiruku
 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';
     }
 }
示例#2
0
文件: login.php 项目: laekov/shiruku
     $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));
 }