我正在尝试将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());
}
}
答案 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/