蛋糕PHP登录重定向错误


CakePHP login redirect bug

我的登录方法中有以下代码,可以将用户重定向到他们的上一页,并向他们显示一条消息,表示欢迎回来。我已禁用自动重定向以授予我控制权,以便我可以在登录时显示闪烁消息并执行其他操作。

    if(!(empty($this->data)) && $this->Auth->user())
    {
        $this->Session->setFlash('Welcome back! <strong>' . $this->User->field('firstname') . '</strong>', 'flash');
        $this->redirect($this->Auth->redirect($this->referer()));
    }

当使用标题中的登录表单时,这工作正常,但是当从实际的独立登录页面登录时,它会将用户重定向回登录页面,并显示错误,指出他们的用户名和密码不正确以及欢迎返回消息。用户已登录并可以访问相关页面,但我不希望他们重定向回登录页面。我该如何解决这个问题?

您可以检查引荐来源网址是否为登录页面,如果是,请将其重定向到主页。

编辑以添加代码示例:

if($this->referer()=='/users/login'){
    $this->redirect('/');
}else{
    $this->redirect($this->Auth->redirect($this->referer()));
}
if(!(empty($this->data)) && $this->Auth->user())
        {
            $this->Session->setFlash('Welcome back! <strong>' . $this->User->field('firstname') . '</strong>', 'flash');
            //$this->redirect($this->Auth->redirect($this->referer()));
            if($this->referer(array('controller' => 'users', 'action' => 'login')))
            {
                $this->redirect(array('controller' => 'home', 'action' => 'index'));
            }
            else
            {
                $this->redirect($this->Auth->redirect($this->referer()));
            }
        }