2013-02-20 47 views
10

के साथ कोडइग्निटर में Google खाते के साथ लॉगिन करें, मैं ओपनआईडी का उपयोग कर Google खाते के साथ लॉगिन लागू करना चाहता हूं, लेकिन मुझे नहीं पता कि इस प्रक्रिया को कैसे शुरू किया जाए क्योंकि मुझे यह नहीं पता कि इसे कैसे किया जाए। तो इसके लिए चरण-दर-चरण मार्गदर्शिकाएं हैं ताकि मैं PHP में CodeIgniter के साथ Google खाता लॉगिन आसानी से कार्यान्वित कर सकूं।ओपनआईडी

मुझे केवल this मिल गया है, लेकिन मैं इसे ठीक से समझ नहीं पा रहा हूं, क्या कोई Google खाता के साथ लॉगिन करने के लिए कोई मार्गदर्शिका या कोई पुस्तकालय है?

+1

ध्यान रखें कि अप्रैल 2015 से Google ने ओपनआईडी कनेक्ट के साथ लॉगिन के पक्ष में ओपनआईडी के साथ लॉगिन रद्द कर दिया है, यह एक बहुत ही अलग उत्तराधिकारी है, यह भी देखें: https://developers.google.com/identity/protocols/OpenID2 माइग्रेशन –

उत्तर

6

डाउनलोड LightOpenIDlogin.php बनाएँ और निम्नलिखित कोड पेस्ट

<?php 

require_once 'openid.php'; 
$openid = new LightOpenID("my-domain.com"); 

if ($openid->mode) { 
    if ($openid->mode == 'cancel') { 
     echo "User has canceled authentication !"; 
    } elseif ($openid->validate()) { 
     $data = $openid->getAttributes(); 
     $email = $data['contact/email']; 
     $first = $data['namePerson/first']; 
     echo "Identity : $openid->identity <br>"; 
     echo "Email : $email <br>"; 
     echo "First name : $first"; 
    } else { 
     echo "The user has not logged in"; 
    } 
} else { 
    echo "Go to index page to log in."; 
} 

index.php पृष्ठ बनाएं और निम्नलिखित कोड

<?php 
require_once 'openid.php'; 
$openid = new LightOpenID("my-domain.com"); 

$openid->identity = 'https://www.google.com/accounts/o8/id'; 
$openid->required = array(
    'namePerson/first', 
    'namePerson/last', 
    'contact/email', 
); 
$openid->returnUrl = 'http://my-domain.com/login.php' 
?> 

<a href="<?php echo $openid->authUrl() ?>">Login with Google</a> 

यह सभी आप कर रहे हैं। Google Login with LightOpenID

+0

धन्यवाद लेकिन मैं ईमेल और उपयोगकर्ता नाम जैसे डेटा प्राप्त करें, लेकिन हर बार केवल ईमेल और भाषा प्राप्त नहीं करते हैं, मैं उपयोगकर्ता को सभी पैरामीटर जैसे openid.php फ़ाइल में परिभाषित करता हूं लेकिन कोई अन्य पैरामीटर नहीं मिला –

+0

लॉगिन ओपनिड काम नहीं कर रहा डाउनलोड करें। क्या आप कोई अन्य यूआरएल दे सकते हैं। –

2

से पहले कोड openid.php पर डाउनलोड करें और अपने कोडिनेटर रूट फ़ोल्डर में डालें।

1. प्रतिलिपि कोड और के रूप में बचाने के लिए ..../नियंत्रक/logingoogle.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class LoginGoogle extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('login_model'); 
    } 

    public function index() 
    { 
     require_once 'openid.php'; 
     $openid = new LightOpenID("localhost"); 
     $openid->identity = 'https://www.google.com/accounts/o8/id'; 
     $openid->required = array(
      'namePerson/first', 
      'namePerson/last', 
      'contact/email', 
      'birthDate', 
      'person/gender', 
      'contact/postalCode/home', 
      'contact/country/home', 
      'pref/language', 
      'pref/timezone', 
     ); 
// $openid->returnUrl = 'http://localhost/login_thirdparty/login_google.php'; 

    $openid->returnUrl = 'http://localhost/login_thirdparty/codeigniterlogin/index.php/logingoogle/loginAuth'; 

// echo '<a href="'.$openid->authUrl().'">Login with Google</a>'; 

     $data['openid'] = $openid; 
     $this->load->view('googleLoginView', $data); 
    } 

    public function loginAuth() 
    { 
     $this->login_model->index(); 
    } 
} 

2. प्रतिलिपि कोड और के रूप में ..../विचारों/googleLoginView.php बचाने

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Login using google account</title> 
</head> 
<body> 
    <a href = "<?php echo $openid->authUrl(); ?>" > Loging Using google account </a> 
</body> 
</html> 

3. प्रतिलिपि कोड और के रूप में बचाने के लिए ..../मॉडल/login_model.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
require 'openid.php'; 

class Login_model extends CI_Model 
{ 
    public function index() 
    { 
     $openid = new LightOpenID("localhost"); 

     if($openid->mode) 
     { 
      if($openid->mode == 'cancel') 
      { 
       echo "User has canceled authentication !"; 
      } 
      elseif($openid->validate()) 
      { 
       $data = $openid->getAttributes(); 
       $email = $data['contact/email']; 
       $first = $data['namePerson/first']; 
    //   header("Location: http://speechwithmilo.com/speechtherapy/adminpanel/"); 
       echo "Identity : $openid->identity <br />"; 
       echo "Email : $email <br />"; 
       echo "First name : $first"; 
       echo "<pre>"; print_r($data); echo "</pre>"; 

//    echo "<meta http-equiv = 'refresh' content = '0; url=http://speechwithmilo.com/speechtherapy/adminpanel/'>"; 
      } 
      else 
      { 
       echo "The user has not logged in"; 
      } 
     } 
     else 
     { 
      echo "Go to the login page to logged in"; 
     } 
    } 
} 
+0

मैंने आपके समाधान का उपयोग किया लेकिन एक त्रुटि आई। कृपया यहां मेरे प्रश्न पर एक नज़र डालें। http://stackoverflow.com/questions/22173781/login-through-google-in-codeigniter-via-openid –