2013-02-20 32 views
10

OpenID kullanarak bir Google hesabı ile giriş yapmak istiyorum, ancak nasıl yapacağım konusunda hiçbir fikrim olmadığı için bu prosedüre nasıl başlayacağımı bilmiyorum. Bu yüzden adım adım kılavuzlar var, böylece PHP'de CodeIgniter ile bir Google hesabı girişini kolayca uygulayabiliyorum.OpenID ile CodeIgniter'de Google hesabı ile giriş yapın

Sadece this buldum ama düzgün anlayamıyorum, dolayısıyla bir Google hesabıyla giriş yapmak için herhangi bir rehber veya herhangi bir kütüphaneniz var mı?

+1

Nisan 2015'ten beri Google'ın OpenID ile oturum açmasını, tamamen farklı bir halefi olan OpenID Connect ile oturum açmayı devre dışı bıraktığını unutmayın: https://developers.google.com/identity/protocols/OpenID2Migration –

cevap

6

LightOpenID. Aşağıdaki kodu login.php oluşturun ve

<?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."; 
} 

Bu bitirdiniz tek şey aşağıdaki kodu

<?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> 

index.php sayfa oluşturun ve. Kod Google Login with LightOpenID'dan Alındı ​​

+0

Teşekkürler ama ben e-posta ve kullanıcı adı gibi verileri al ama her zaman sadece e-posta ve dil almadım, openid.php dosyasında tanımlamak gibi tüm parametreleri kullanıyorum ama başka bir parametre alamıyorum –

+0

Download login openid çalışmıyor. Başka bir URL verebilir misiniz? –

2

İlk başta openid.php'u indirin ve codeigniter kök klasörünüzü yerleştirin.

1. kopya kodu ve .... olarak kaydetmek/kontrolör/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. kopya kodu ve ..../görünümler/googleLoginView.php olarak kaydetmek

<!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. kopya kodu ve farklı kaydet ..../modeller/login_model.php

+0

Çözümünüzü kullandım, ancak bir hatayla karşılaştı. Lütfen soruma bir bakın. http://stackoverflow.com/questions/22173781/login-through-google-in-codeigniter-via-openid –

İlgili konular