我正在使用cakephp v3。我已启用身份验证。假设我想让一个名为“XXX”的用户在不使用密码的情况下登录。我在UsersController.php中有以下login()函数。如何修改它以允许名为“XXX”的用户无需输入密码即可登录?允许某些用户在不输入密码的情况下登录cakephp
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
}
$this->Flash->error(__('Invalid username or password, try again'));
}
} //public function login()
只需检查发布的用户名是否为'XXX',如果是,则从数据库中取出用户而不是Auth-> identify。如果蛋糕是明智的,那么将用户对象从DB ORM传递到Auth-> setUser也应该可以。免责声明:从未使用过的蛋糕3 – JimL
老实说这是一个吓人的愚蠢的想法,并打开一个安全漏洞。例如,运行一段时间的死简单的字典攻击*可能*发现此帐户名称,如果它不是像UUID那样的字符串。如果这个特定的用户懒惰地输入密码,我怀疑这很复杂。我会添加至少一个机制,在短时间内防止登录尝试并记录它们。 – burzum
我同意你的意见。如果用户坚持不顾警告(减去愚蠢的言论),则无法提供帮助。 – user781486