这是一个简单的 CakePHP 登录函数(示例取自 CakePHP 食谱):
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
} else {
$message = 'Username or password is incorrect';
$this->Session->setFlash(__($message), 'default', array(), 'auth');
}
}
}
在测试此登录功能期间,我发现:
if ($this->Auth->login()) {
// ...
}
即使之前已完成授权,它也允许用户登录。例如,如果我以User1身份登录并且没有调用注销功能,我正在尝试以User2身份登录- 我将收到下一个错误:
Notice (8): Undefined index: User [APP/Controller/UsersController.php, line 83]
在这种情况下,我可以向用户隐藏登录表单。这是正确的方法吗?
更新:您对下一个代码段有什么看法:
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->loggedIn()) {
$this->Auth->logout();
}
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
} else {
$message = 'Invalid login or password';
$this->Session->setFlash(__($message), 'default', array(), 'auth');
}
}
}