如何向CakePHP 2.0身份验证中添加超级密码

如何向CakePHP 2.0身份验证中添加超级密码,php,cakephp,authentication,passwords,Php,Cakephp,Authentication,Passwords,我的客户特别要求在应用程序中添加“超级登录”的可能性,这将使他能够以任何用户的身份登录,这要感谢超级密码。我的想法是这样的:在CakePHP Auth进程的某个地方添加了一个条件,该条件将允许使用特殊字符串作为密码,因此使用此字符串用户将通过$this->Auth->login()方法进行身份验证,他使用用户密码以正常方式登录。 以前有人这样做过吗?有没有办法达到这个目标 以下是我在UserController中的代码行,它为用户进行身份验证: public function admin

我的客户特别要求在应用程序中添加“超级登录”的可能性,这将使他能够以任何用户的身份登录,这要感谢超级密码。我的想法是这样的:在CakePHP Auth进程的某个地方添加了一个条件,该条件将允许使用特殊字符串作为密码,因此使用此字符串用户将通过$this->Auth->login()方法进行身份验证,他使用用户密码以正常方式登录。 以前有人这样做过吗?有没有办法达到这个目标

以下是我在UserController中的代码行,它为用户进行身份验证:

    public function admin_login() {
        if ($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        }

        if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                $this->Session->setFlash(__('Successfully Logged In'),'flash_custom_success');
                $this->redirect($this->Auth->redirect());
            } else {
                $this->Session->setFlash(__('Invalid username or password, try again'),'flash_custom_error');
            }
        }
    }

经过思考(不喜欢“超级密码”的想法),我决定为管理员创建用户切换功能。此解决方案已被客户接受。

是否无法说服客户这是不安全的?任何拥有超级密码(需要配乐)的人都会造成严重破坏。。。特别是,如果他想记住一个“简单”的密码,并最终得到“superPassword123”,我同意,可能更好的方法是增加管理员切换到另一个用户的可能性。后台逻辑只需在会话中重写$user数组,就可以达到预期的效果。