2013-02-20 22 views
10

OpenIDを使用してGoogleアカウントでログインを実装したいのですが、どのように行うべきかわからないのでこの手順を開始する方法はわかりません。ですから、PHPでCodeIgniterを使ってGoogleアカウントのログインを簡単に実装できるように、これについてのステップバイステップガイドがあります。OpenIDを使用してCodeIgniterでGoogleアカウントにログイン

私はthisしか見つけられませんが、正しく理解できないため、Googleアカウントでログインするガイドやライブラリはありますか?

+1

Googleは2015年4月以来、OpenID Connectによるログインを廃止したことを認識しています。これはかなり後継です。https://developers.google.com/identity/protocols/OpenID2Migration –

答えて

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

ありがとうございます電子メールやユーザー名のようなデータを取得するが、たびに電子メールと言語のみを取得することはできないiユーザーすべてのパラメータはopenid.phpファイルで定義するが他のパラメータは取得しないようにする –

+0

ログインopenidが動作しない。他のURLを教えてもらえますか? –

2

最初にopenid.phpをダウンロードし、codeigniterのルートフォルダに入れてください。

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 –

関連する問題