【发布时间】:2015-01-07 13:04:33
【问题描述】:
在我的 CakePHP 应用程序中,我想在每个页面上包含一个登录表单,如果用户未登录,则带有登录按钮,如果用户已登录,则带有注销按钮。
这是我在 AppController.php 中的 Auth 配置
var $components = array
(
'Auth' => array
(
'authenticate' => array
(
'Form' => array
(
'fields' => array('username' => 'email'),
'passwordHasher' => array
(
'className' => 'Simple',
'hashType' => 'sha256'
)
)
)
),
'Session'
);
我想设置一个在所有视图中都可用的标志来检查用户是否登录。我试图通过AppController::beforeFiter()来做到这一点
function beforeFilter()
{
parent::beforeFilter();
$this->layout = 'default';
var_dump($this->Auth->user());
$this->set("isLoggedIn",$this->Auth->loggedIn());
}
除PagesController 外,每个控制器都可以工作。只是为了确保这不是允许/拒绝问题,这是PagesController::beforeFilter
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow();
}
AppController::beforeFilter() 实际上在我转到主页时会被调用,但AppController::beforeFilter() 中的var_dump($this->Auth->user()) 会打印NULL。
静态页面不能使用用户身份验证吗?
【问题讨论】: