????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.142.97.186 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/appsrv.astacus.se/energicontrol/ |
Upload File : |
<?php # add github credentials define('OAUTH2_CLIENT_ID', '1bf8ca4b24e6449e81874581f6ed73da'); //add client id here define('OAUTH2_CLIENT_SECRET', 'N0sm56eMfSzOjzLjRPdHiO9oMXL7HUeTi9+EFdiQMGs='); //add client secret here # URL of github api $authorizeURL = 'https://api.nibeuplink.com/oauth/authorize'; $tokenURL = ' https://api.nibeuplink.com/oauth/token'; $apiURLBase = 'http://appsrv.astacus.se/energicontrol/nibe'; # start sessions session_start(); // Start the login process by sending the user to Github's authorization page if(get('action') == 'login') { // Generate a random hash and store in the session for security $_SESSION['state'] = hash('sha256', microtime(TRUE).rand().$_SERVER['REMOTE_ADDR']); unset($_SESSION['access_token']); $params = array( 'client_id' => OAUTH2_CLIENT_ID, 'redirect_uri' => 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'], 'scope' => 'user', 'state' => $_SESSION['state'] ); // Redirect the user to Github's authorization page header('Location: ' . $authorizeURL . '?' . http_build_query($params)); die(); } // to kill all Sessions and reset code base if(get('action') == 'exit') { unset($_SESSION['state']); unset($_SESSION['access_token']); session_destroy(); exit(); } // When Github redirects the user back here, there will be a "code" and "state" parameter in the query string if(get('code')) { // Verify the state matches our stored state if(!get('state') || $_SESSION['state'] != get('state')) { header('Location: ' . $_SERVER['PHP_SELF']); die(); } // Exchange the auth code for a token $token = apiRequest($tokenURL, array( 'client_id' => OAUTH2_CLIENT_ID, 'client_secret' => OAUTH2_CLIENT_SECRET, 'redirect_uri' => 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'], 'state' => $_SESSION['state'], 'code' => get('code') )); $_SESSION['access_token'] = $token->access_token; header('Location: ' . $_SERVER['PHP_SELF']); } # if successful show results if(session('access_token')) { $user = apiRequest($apiURLBase.'user'); echo '<h3>Logged In</h3>'; echo '<h4>' . $user->login . '</h4>'; echo '<pre>'; print_r($user); echo '</pre>'; #print out full list of urls of github print '<br /><br />'; print '<h3>Full List of Urls on Github</h3>'; $full = apiRequest($apiURLBase); foreach ($full as $key=>$value) { print $key .'=>'. $value.'<br />'; } } else { # fail result if no session token echo '<h3>Not logged in</h3>'; echo '<p><a href="?action=login">Log In</a></p>'; } # main function for curl requests function apiRequest($url, $post=FALSE, $headers=array()) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_USERAGENT, 'Linux useragent'); //change agent string if($post) curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); $headers[] = 'Accept: application/json'; # add access token to header if(session('access_token')) $headers[] = 'Authorization: Bearer ' . session('access_token'); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); return json_decode($response); //decode response } # array key existence function get($key, $default=NULL) { return array_key_exists($key, $_GET) ? $_GET[$key] : $default; } # array key existence function session($key, $default=NULL) { return array_key_exists($key, $_SESSION) ? $_SESSION[$key] : $default; } ?>