1

我正在尝试将 facebook 身份验证集成到我的 Cakephp 2.2.4 应用程序中,一旦 facebook 身份验证完成,我正在尝试创建用户并手动登录用户,我看到虽然下面的代码正在创建一个身份验证会话,即$this->Auth->user() 包含所有数据,它没有将用户登录到应用程序,即我无法访问应用程序的其他功能

$user = $this->User->findById($user_id);
        $this->Auth->login($user);

这是我用来手动登录的,保存的用户不包含用户名和密码

这是在我的 AppController.php

class AppController extends Controller {
public $components = array(
'Session',
'Auth'=>array(
     'loginRedirect'=>array('controller'=>'Users','action'=>'dashboard'),
     'logoutRedirect'=>array('controller'=>'Users','action'=>'login'),
     'authError'=>'You can\'t access that page',
     'authenticate' => array(
        'Form' => array(
            'fields' => array('username' => 'email')
        ),'Basic'),
     'authorize'=>array('controller')
    ),
'RequestHandler'    
);

public $helpers = array('Js' => array('Jquery'),'Html','Form');

public function isAuthorized($user){
    return TRUE ;
}

public function beforeFilter(){

    // $this->Auth->allow('index','view');
    // $this->set('logged_in',$this->Auth->loggedIn());
    // $this->set('current_user',$this->Auth->user());
}

}

4

4 回答 4

2

尝试:

$this->Auth->login($user['User']);
于 2013-01-04T01:41:55.787 回答
0

也许 Auth 组件仍然引用用户名字段而不是电子邮件进行身份验证。您可以尝试更改用户名。

于 2013-01-04T14:20:54.187 回答
0

这与 cakephp 应用程序无关,而是我用于 facebook 的插件,它没有发布数据

于 2013-01-04T12:22:59.880 回答
0

我正在开发一个使用 Facebook oAuth 作为身份验证组件的身份验证对象的插件。如果您想要使用服务器端 Facebook 登录的已构建解决方案,请查看我的网站: http: //marianofino.github.com/Facebook-Plugin-for-CakePHP/

于 2013-01-11T21:18:51.553 回答