2013-05-01 2 views
2

philsturgeon's OATH2 spark for CodeIgniter을 사용하여 사용자를 Facebook을 사용하여 인증하려고합니다. Spark를 설치하고 github에서 제공하는 Usage Example을 시도했습니다.비 객체, Codeigniter OAuth2에 대한 멤버 함수 set_userdata() 호출

다음 코드에서 이드와 암호 만 변경했습니다.

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

    class Auth extends CI_Controller 
{ 
    public function session($provider) 
    { 
     $this->load->helper('url_helper'); 

     $this->load->spark('oauth2-0.4.0'); 

     $provider = $this->oauth2->provider($provider, array(
      'id' => 'My_ID', 
      'secret' => 'MY_Secret', 
     )); 

     if (! $this->input->get('code')) 
     { 
      // By sending no options it'll come back here 
      $provider->authorize(); 
     } 
     else 
     { 
      // Howzit? 
      try 
      { 
       $token = $provider->access($_GET['code']); 

       $user = $provider->get_user_info($token); 

       // Here you should use this information to A) look for a user B) help a new user sign up with existing data. 
       // If you store it all in a cookie and redirect to a registration page this is crazy-simple. 
       echo "<pre>Tokens: "; 
       var_dump($token); 

       echo "\n\nUser Info: "; 
       var_dump($user); 
      } 

      catch (OAuth2_Exception $e) 
      { 
       show_error('That didnt work: '.$e); 
      } 

     } 
    } 
} 

하지만

http://localhost/tddd27/index.php/auth/session/facebook 

내가 다음 수를 사용하여 컨트롤러를 호출하려고 할 때 :

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: Auth::$session 

Filename: libraries/Provider.php 

Line Number: 117 


Fatal error: Call to a member function set_userdata() on a non-object in 

C : \ XAMPP \ htdocs를 \ tddd27 \ 스파크 \ oauth2-0.4 .0 \ libraries \ Provider.php on line 117

라이브러리에 이상이 있습니까? 아니면 잘못된 것입니까?

답변

9

세션 라이브러리가로드되지 않은 것 같습니다. 당신의 application/config/autoload.php 파일

+0

당신이 참에 추가하여 기능

$this->load->library('session'); 

또한 라이브러리 자동로드를 가질 수의 상단이 추가보십시오. 그게 문제 였어. –

관련 문제