0

ceci est mon contrôleur pour google login. le code ne fonctionne pas après le code de réponse google.google inscrivez-vous dans la mise en œuvre dans codeigniter google retour code de réponse avec "/" en valeur qui cassent le code

public function index(){ 
    // Include the google api php libraries 
    require_once APPPATH.'libraries/google-api-php-client/vendor/autoload.php'; 

    // Google Project API Credentials 
    $clientId = 'mentioned'; 
    $clientSecret = 'mentioned'; 
    $redirectUrl = base_url() . 'user_authentication/'; 


    // Google Client Configuration 
     $gClient = new Google_Client(); 
     $gClient->addScope('email'); 
     $gClient->setApplicationName('REDBUD HOTELS'); 
     $gClient->setClientId($clientId); 
     $gClient->setClientSecret($clientSecret); 
     $gClient->setRedirectUri($redirectUrl); 
     $google_oauthV2 = new Google_Service($gClient); 
//GOOGLE response 
     if (isset($_REQUEST['code'])) 
        { 
        $gClient->authenticate($_REQUEST['code']); 
        $this->session->set_userdata('token', $gClient->getAccessToken()); 
        header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);  

        } 
//check if $token us set 
     $token = $this->session->userdata('token'); 
     if (!empty($token)) 
      { 
      $gClient->setAccessToken($token); 
      } 

     if ($gClient->getAccessToken()) 
      { 
      $userProfile = $plus->userinfo->get(); 
      // Preparing data for database insertion 
      $userData['oauth_provider'] = 'google'; 
      $userData['oauth_uid'] = $userProfile['id']; 
      $userData['first_name'] = $userProfile['given_name']; 
      $userData['last_name'] = $userProfile['family_name']; 
      $userData['email'] = $userProfile['email']; 
      $userData['gender'] = $userProfile['gender']; 
      $userData['locale'] = $userProfile['locale']; 
      $userData['profile_url'] = $userProfile['link']; 
      $userData['picture_url'] = $userProfile['picture']; 
      // Insert or update user data 
      $userID = $this->user->checkUser($userData); 
      if(!empty($userID)) 
      { 
       $data['userData'] = $userData; 
       $this->session->set_userdata('userData',$userData); 
      } else 
      { 
       $data['userData'] = array(); 
      } 
     } else 
     { 
      $data['authUrl'] = $gClient->createAuthUrl(); 
     } 
     $this->load->view('user_authentication/index',$data); 
    } 

"Code de réponse de Google user_authentication /? Code = 4/5wcPW5Yv6qNONOzeUz5gun4PtfuPTa6mPN9r97BDhGM #" s'il vous plaît me dire aussi ce qui devrait être mieux $plus->userinfo->get() or $google_oauthV2->userinfo->get();

Répondre

0

code de réponse Google ne "/"

ex: http://www.example.com/storage_integration/granted?code=4/oXKtlTyfmtzUBc5CjbafSpwItMz7itZMhM54VpKEbwI

vous pouvez utiliser $_GET au lieu de $_REQUEST

if (isset($_GET['code'])) { 
    // authenticate auth code here 
} 
+0

je ai essayé cela, mais en raison de l'URL conviviale codeigniter cette réponse de google donne une erreur –

+0

@Pawansharma pouvez-vous poster le message d'erreur complet? –

+0

Je pensais au problème que c'était juste une mise à jour de Google API en remplaçant simplement l'objet new Google_Service ($ gClient); avec Google_Service_Oauth2 ($ gClient); résolu mon problème. –

0

En remplaçant simplement l'objet new Google_Service ($ gClient); avec Google_Service_Oauth2 ($ gClient); résolu l'erreur