我正在关注tutorial以在我的应用程序中应用FB登录。我已经逐步完成了整个教程。在登录页面上还可以看到按钮"通过Facebook登录"。但是,当我点击该按钮并通过FB验证或我已经登录到FB但我的页面没有重定向到登录区域。即使在通过FB登录后,我仍然在登录页面。但CakePHP登录正常。
来自UsersController.php的登录操作的一些代码段
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
if($this->Auth->user('id')==1){
if($this->Auth->user('type')==1){
if($this->Auth->user('verified')==0){
$this->Auth->logout();
}
}
return $this->redirect($this->Auth->redirectUrl());
$this->Session->setFlash(__('Logged In Successfully'), 'default', array('class' => 'alert alert-success'));
}
else{
$this->redirect(array('controller'=>'users','action'=>'index'));
}
}
$this->Session->setFlash(__('Invalid username or password, try again'), 'default', array('class' => 'alert alert-danger'));
}
}
在AppController.php中,我包含以下代码:
public $components = array(
'Paginator',
'Session',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'users',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'users',
'action' => 'home',
),
'authenticate' => array(
'Form' => array(
'passwordHasher' => 'Blowfish',
'fields'=>array('username'=>'email')
)
)
),
'Email',
'Facebook.Connect'
);
var $helpers = array('Facebook.Facebook');
在UsersContoller.php pr($_SESSION)
输出以下代码,当我已在CakePHP登录页面上登录FB时:
Array
(
[Config] => Array
(
[userAgent] => f04e6*****************c00392
[time] => 1425647071
[countdown] => 10
)
[fb_989554394440625_user_id] => 8459*********71
)
我已经在网上搜索了这个问题,但无法解决问题。
答案 0 :(得分:-1)
缺少一些重要的代码部分,需要提供合格的,经过验证的答案。
你在哪里调用login-Function?如果用户未登录,请确保只调用此项,否则请渲染您的内容..
if(!$this->Auth->user()) {
$this->login(); // request login
} else {
$this->render('profile'); //render your view
}
如果用户正确登录,这应该呈现"配置文件" -View。如果您似乎已登录但仍然会调用login-Fn,那么您可能在覆盖Auth-Methods时犯了错误(如果您这样做了)
如果仍然无法解决问题,请在此处添加更多代码。