function catchGoogleExceptions($e) { global $credentialsPath, $client; print "An error occurred: " . $e->getMessage() . " <br>"; switch ($e->getCode()) { case '401': refreshToken($client); print "Token refreshed. Restart app <br>"; break; } die; }
function checkToken() { if (isset($_SESSION['timeToken'])) { $time_left = $_SESSION['timeToken'] + $_SESSION['expires_in'] - time(); $ret = 0; if ($time_left < 5 * 60) { $ret = refreshToken(); } return $time_left; } else { retun - 1; } }
/** * Returns an authorized API client. * @return Google_Client the authorized client object */ function getClient() { global $credentialsPath; $client = new Google_Client(); $client->setApplicationName(APPLICATION_NAME); $client->setScopes(GAPI_SCOPES); $client->setAuthConfigFile(CLIENT_SECRET_PATH); $client->setAccessType('offline'); if (file_exists($credentialsPath)) { $accessToken = file_get_contents($credentialsPath); } else { $authUrl = $client->createAuthUrl(); $authCode = false; if (isset($_POST['authCode']) && $_POST['authCode']) { $authCode = $_POST['authCode']; } if (!$authCode) { printf("Open the following link in your browser:\n<a href='%s' target='_blank'>link</a>\n", $authUrl); echo "<form method='post'><input name='authCode'><input type='submit' name='Check auth code'></form>"; die; } if ($authCode) { // Exchange authorization code for an access token. $accessToken = $client->authenticate($authCode); if (file_put_contents($credentialsPath, $accessToken)) { printf("Credentials saved to %s: " . colorize("SUCCESS", "SUCCESS") . "<br>", $credentialsPath); } else { printf("Credentials saved to %s: " . colorize("FAILED", "FAILURE") . "<br>", $credentialsPath); die; } } else { die("No authCode"); } } $client->setAccessToken($accessToken); // Refresh the token if it's expired. if ($client->isAccessTokenExpired()) { echo "Token is Expired. Trying to refresh.. <br>"; $client = refreshToken($client); } else { echo "Everything fine<br>"; } return $client; }
<?php /* * IMPLEMENTATION OF: https://authserver.mojang.com/refresh */ define('METHUSELAH_INCLUDE_CHECK', true); require_once "yggdrasil.php"; $payload = filterPostPayload(); $accessToken = $payload['accessToken'] or responseWithError("accessToken is empty!"); $clientToken = $payload['clientToken'] or responseWithError("clientToken is empty!"); // Обновление лицензионного accessToken-а $mojangResponse = mojangRefresh($accessToken, $clientToken); // Новый accessToken $newToken = $mojangResponse != false ? $mojangResponse['accessToken'] : md5(uniqid()); // Обновление в БД и получение учётной записи $uuid = refreshToken($accessToken, $clientToken, $newToken); // Возврат результата выполнения if ($uuid != false) { $result = array("accessToken" => $newToken, "clientToken" => $clientToken, "selectedProfile" => array("id" => $uuid, "name" => getProfileName($uuid))); response($result); } responseWithError("ForbiddenOperationException", "Invalid accessToken or clientToken.");
<?php require_once "common.php"; //capture code from auth $code = $_GET["code"]; //construct POST object for access token fetch request $postvals = array('grant_type' => 'authorization_code', 'client_id' => $key, 'client_secret' => $secret, 'code' => $code, 'redirect_uri' => $callback_url); //get JSON access token object (with refresh_token parameter) $token = json_decode(run_curl($access_token_endpoint, 'POST', null, $postvals)); echo "<h1>TOKEN</h1>"; var_dump($token); echo "<br /><br />"; //set request headers for signed OAuth request $headers = array("Accept: application/json"); //construct URI to fetch profile information for current user $profile_url = "https://api.gowalla.com/users/me?oauth_token=" . $token->access_token; //fetch profile of current user $profile = run_curl($profile_url, 'GET', $headers); var_dump($profile); echo "<h1>REFRESHING TOKEN</h1>"; var_dump(refreshToken($key, $secret, $token->refresh_token));
function catchGoogleExceptions($e) { global $credentialsPath, $client; logError("An error occurred " . $e->getCode() . ": " . $e->getMessage()); // var_dump($e); switch ($e->getCode()) { case '401': refreshToken($client); logError("Token refreshed. Please restart app"); break; } closeSession(); }
if (isset($_GET['code'])) { // take our spotify response, and inject it to our localStorage ?> <script type="text/javascript"> var response = <?php echo getToken($_GET['code'], $url); ?> ; var Spotify = JSON.parse( localStorage.getItem('ngStorage-spotify') ); Spotify.AuthorizationCode = "<?php echo $_GET['code']; ?> "; Spotify.AccessToken = response.access_token; Spotify.RefreshToken = response.refresh_token; localStorage.setItem('ngStorage-spotify', JSON.stringify( Spotify )); window.close(); </script> <?php } /* * Refresh the token * Triggered by a detection that the token is expired, and the application decides it needs to be refreshed * $authorization_code = string * Returns JSON with new token details */ if (isset($_GET['refresh_token'])) { // return whatever spotify returned to us echo refreshToken($_GET['refresh_token']); die; }
public function respondByDefenderUser($postid, $message) { global $nmDataService; global $logService; global $error_code; global $error; global $forum_status; global $tds; global $appid; global $logthreadid; $rtxid = 0; $ttxid = 0; if ($forum_status != 2) { return; } $appid = 1; $message = $message . ' #' . $logthreadid; $username = '******'; $unds = $nmDataService->getUsernodeDataService(1); //$user=$unds->getDisqusUserByPrimaryName($username); $user = $unds->getDisqusAppUserByUsername($username, $appid); $logService->log('DEBUG C', 'respondByDefenderUser', var_log($user, '$user'), 'userManager'); $token = $user['auth_token']; $refresh_token = $user['refresh_token']; $identity = $user['identity']; if (isset($tds)) { $rtxid = $tds->forumTasks_shortStartTx('RespondToPost', 'username='******';appid=' . $appid . ';identity=' . $identity); //$logService->log('DEBUG','forumTasks_shortStartTx(RespondToPost) returned'.$rtxid,'','userManager'); } if (!respodToPost($token, $postid, $message, true)) { if (isset($tds)) { $tds->abortTx($rtxid, 'username='******';appid=' . $appid . ';identity=' . $identity . ';error=' . $error_code); } $logService->log('DEBUG C', 'Failed first attempt to respond by defender user ', 'code=' . $error_code, 'userManager'); if (isset($tds)) { $ttxid = $tds->forumTasks_shortStartTx('RefreshToken', 'username='******';appid=' . $appid . ';identity=' . $identity . ';refresh_token=' . $refresh_token); } $token = refreshToken($refresh_token); // $unds->refreshToken($identity); if (!$token) { if (isset($tds)) { $tds->abortTx($ttxid, 'username='******';appid=' . $appid . ';identity=' . $identity . ';refresh_token=' . $refresh_token . ';error=' . $error); } } else { if (isset($tds)) { $tds->completeTx($ttxid); } $unds->refreshAppUserToken($user['identity'], $appid); if (isset($tds)) { $rtxid = $tds->forumTasks_shortStartTx('RespondToPost', 'username='******';appid=' . $appid . ';identity=' . $identity); } if (!respodToPost($token, $postid, $message, true)) { if (isset($tds)) { $tds->abortTx($rtxid, 'username='******';appid=' . $appid . ';identity=' . $identity . ';error=' . $error_code); } $logService->log('ERROR', 'Failed to respondToPost', 'Failed second attemt by defender user,giving up code=' . $error_code, 'userManager'); } else { if (isset($tds)) { $tds->completeTx($rtxid); } } } } else { //if(isset($txid)) $tds->completeTx($rtxid); } }
function updateUserStatus($userId, $newStatus) { // first refresh token $refreshToken = refreshToken(); $accessToken = getAccessTokenFromDatabase(); $boxAppConfigArray = boxAppConfigArray(); $endpoint = $boxAppConfigArray['apiBaseUrl'] . '/users/' . $userId; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $endpoint); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $accessToken)); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); $parametersArray = array('status' => $newStatus); $data_string = json_encode($parametersArray); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); $result = curl_exec($ch); $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); //$header = substr($result, 0, $header_size); $body = json_decode(substr($result, $header_size)); //$header = substr($result, 0, $header_size); if (isset($body->errors)) { die(__CLASS__ . ':' . __LINE__); } return $body; }
<?php require_once "common.php"; //capture code from auth $code = $_GET["code"]; //construct POST object for access token fetch request $postvals = array('grant_type' => 'authorization_code', 'client_id' => KEY, 'client_secret' => SECRET, 'code' => $code, 'redirect_uri' => CALLBACK_URL); //get JSON access token object (with refresh_token parameter) $token = json_decode(run_curl(ACCESS_TOKEN_ENDPOINT, 'POST', $postvals)); //set request headers for signed OAuth request $headers = array("Accept: application/json"); //construct URI to fetch contact information for current user $contact_url = "https://www.google.com/m8/feeds/contacts/default/full?oauth_token=" . $token->access_token; //fetch profile of current user $contacts = run_curl($contact_url, 'GET', $headers); var_dump($contacts); echo "<h1>REFRESHING TOKEN</h1>"; var_dump(refreshToken($token->refresh_token));