CodeIgniter使用google openid登录

问题描述:

我是CodeIgniter框架的新手。我已经使用OpenID对于试图登录我复制lightopenid网址,并把它在配置/ config.php文件CodeIgniter使用google openid登录

$config['base_url'] = 'https://gitorious.org/lightopenid/lightopenid/raw/9d42dc24e4dd34121c98a6491bc3ef7933a68a19:openid.php'; 

A PHP Error was encountered 

    Severity: Warning 

    Message: require(openid.php): failed to open stream: No such file or directory 

    Filename: models/login_model.php 

    Line Number: 2 

请找我使用

控制器下面的代码/ 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/codeigniterlogin/index.php/logingoogle/loginAuth'; 



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

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

型号/ 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']; 

       echo "Identity : $openid->identity <br />"; 
       echo "Email : $email <br />"; 
       echo "First name : $first"; 
       echo "<pre>"; print_r($data); echo "</pre>"; 


      } 
      else 
      { 
       echo "The user has not logged in"; 
      } 
     } 
     else 
     { 
      echo "Go to the login page to logged in"; 
     } 
    } 
} 

的意见/ googleLoginView.php

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

错误原因是require 'openid.php';。您没有放置openid.php文件或cannt在模型和控制器类中找到该文件。

你最好这样做,直接(在netbeans中)在源文件中创建一个文件夹作为openid文件夹并在其上创建一个php文件。并复制以下链接的代码并将其粘贴到您创建的空白php文件中。

https://gitorious.org/lightopenid/lightopenid/raw/9d42dc24e4dd34121c98a6491bc3ef7933a68a19:openid.php

,并在这两个控制器和模型,你必须改变require 'openid.php'require "opened/openid.php"

希望工程

+0

great.thank你。 – user3423301 2014-11-08 05:44:21

+0

欢迎继续。 – VenushkaT 2014-11-08 05:48:53