public function onRun() { // Initiliase variables $this->page['authenticated'] = false; //============= TODO: put these in theme settings (or component back end settings) =================== // Set the AVC API credentials $clientId = '4320'; $clientSecret = '8ab4693d377cafa884c63203c5b54b89707ffd63'; $redirect = 'http://avc-october.app'; //$redirect = 'http://ampthillveloclub.co.uk/strava'; $response_type = 'code'; $state = 'step1'; // Instatiate Strava API object with AVC client credentials $api = new StravaApi($clientId, $clientSecret); // User has clicked logout (redirects to this page) if (Input::has('logout')) { // Delete Strava session data Session::forget('strava_token'); return Redirect::to('/'); } // Check for Strava session data containing API auth token $session_token = Session::get('strava_token', 'empty'); // We have a Strava auth token in session if (!($session_token == 'empty')) { $api->setAccessToken($session_token); // Set authenticated flag $this->page['authenticated'] = true; // GET - Auth athlete from Strava API $this->page['auth_athlete'] = $api->get('athlete'); //dd($this->page['auth_athlete']); } elseif (Input::has('code') && Input::has('state') && Input::get('state') == 'step1') { // Exchange code for access token for user $result = $api->tokenExchange(Input::get('code')); // Set access token in to the user api object $token = $api->setAccessToken($result->access_token); // Save access token to user's session in cookie Session::put('strava_token', $token); return Redirect::to('/'); //dd($result->athlete); } else { $this->page['url'] = $api->authenticationUrl($redirect, $approvalPrompt = 'auto', $scope = null, $state = 'step1'); } }