当我尝试使用 CakePHP 2.0 学习和编程网站时,我遇到了一个奇怪的问题。我过去曾使用 1.3 版,但以前从未见过这个问题。我正在运行 Cookbook (p.638) 中的简单身份验证和授权应用程序教程,并且我已经检查并仔细检查以确保它是相同的。
我遇到的问题是,当我调用 /users/login 并使用虚假信息填写表格或将其留空时。Auth 将其登录,如果我这样做,if($this->Auth->user())
我将收到 true。
我已经放弃试图理解为什么会发生这种情况。它很奇怪....
/用户/登录
public function login(){
if($this->request->is('post')){
if($this->Auth->login($this->request->data)){
$this->redirect($this->Auth->redirect());
}else{
$this->Session->setFlash('Wrong login credentials!', 'default', array('class' => 'notification error closeable'));
}
}
}
// Appcontroller.php ---- 认证配置
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'home'),
'authorize' => array('Controller')
)
);
public function isAuthorized($user){
if(isset($user['role']) && $user['role'] === 'admin'){
return true;
}
return false;
}