getProviders())) { // Store the provider for the callback event $storage->set('provider', $_GET['provider']); } else { $error = $_GET['provider']; } } // // Event 2: User clicked LOGOUT link // if (isset($_GET['logout'])) { if (in_array($_GET['logout'], $hybridauth->getProviders())) { // Disconnect the adapter $adapter = $hybridauth->getAdapter($_GET['logout']); $adapter->disconnect(); } else { $error = $_GET['logout']; } } // // Handle invalid provider errors // if ($error) { error_log('Hybridauth Error: Provider ' . json_encode($error) . ' not found or not enabled in $config'); // Close the pop-up window echo " "; exit; } // // Event 3: Provider returns via CALLBACK // if ($provider = $storage->get('provider')) { $hybridauth->authenticate($provider); $storage->set('provider', null); // Retrieve the provider record $adapter = $hybridauth->getAdapter($provider); $userProfile = $adapter->getUserProfile(); $accessToken = $adapter->getAccessToken(); // add your custom AUTH functions (if any) here // ... $data = [ 'token' => $accessToken, 'identifier' => $userProfile->identifier, 'email' => $userProfile->email, 'first_name' => $userProfile->firstName, 'last_name' => $userProfile->lastName, 'photoURL' => strtok($userProfile->photoURL, '?'), ]; // ... // Close pop-up window echo " "; } } catch (Exception $e) { error_log($e->getMessage()); echo $e->getMessage(); }