使用登录facebook实现cakephp auth的问题

时间:2015-10-04 18:47:04

标签: php cakephp authentication login facebook-sdk-4.0

我在cakephp 2.6.2版本中使用cakephp auth组件创建了一个应用程序,现在我还使用facebook sdk实现登录facebook,我试着关注这篇文章How do I integrate Facebook SDK login with cakephp 2.x?,为此我已经下载了facebook-php-sdk-v4,但是当我使用句子时

App::import('Vendor', 'facebook-php-sdk-v4-5.0-dev/src/Facebook'); 

然后调用Facebook类,我有错误

Fatal error: Class 'Facebook' not found in C:\xampp\htdocs\exampleApp\app\Controller\AppController.php on line 34

我在exampleApp \ app \ Vendor中复制了facebook SDK 该文件夹名为facebook-php-sdk-v4-5.0-dev

我的appControll在这里

    <?php

App::uses('Controller', 'Controller');
App::import('Vendor', 'facebook-php-sdk-v4-5.0-dev/src/Facebook');

class AppController extends Controller {



    public $components = array(
        'Session',
        'Auth' => array(
            'loginRedirect' => array(
                'controller' => 'home',
                'action' => 'Page'
            ),
            'logoutRedirect' => array(
                'controller' => 'users',
                'action' => 'login'
            ),
            'authenticate' => array(
                'Form' => array(
                    'passwordHasher' => 'Blowfish'
                )
            ),
            'authorize' => array('Controller'),
            'authError' => false
        )
    );


    public function beforeFilter(){

        $this->Facebook = new Facebook(array(
            'appId'     =>  'App_ID_of_facebook',
            'secret'    =>  'App_Secret'

        ));

        $this->layout = 'bootstrap';
        $this->Auth->allow(
                            'login', 
                            'logout'
                    );

        $this->set('current_user', $this->Auth->user());
    }

    public function isAuthorized($user)
    {
        if(isset($user['role_id']) && $user['role_id'] === '1')
        {
            return true;
        }

        return false;

    }

}
?>

问题尤其在于

$this->Facebook = new Facebook(array(
            'appId'     =>  'App_ID_of_facebook',
            'secret'    =>  'App_Secret'

        ));

在这里返回致命错误:Class&#39; Facebook&#39;找不到

非常感谢任何可以帮助我的人

1 个答案:

答案 0 :(得分:0)

问题是该类&#34;供应商/ facebook-php-sdk-v4-5.0-dev / src / Facebook / Facebok.php&#34;有&#34;命名空间Facebook&#34;因此,我的项目范围不同,因此解决方案是删除&#34;命名空间Facebook&#34;