Cakephp 2.x无法手动登录

时间:2013-01-03 18:00:18

标签: cakephp cakephp-2.0

我正在尝试将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 个答案:

答案 0 :(得分:2)

尝试:

$this->Auth->login($user['User']);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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