如何检查用户是否已经离开我的登录表单?没有登录,但实际上离开它?用户离开时CakePHP删除会话
因为我想删除Auth.redirect会话,如果他们选择不登录,以便他们稍后返回,他们不会被带到他们以前的会话!
所以基本上运行以下命令:
$this->Session->delete('Auth.redirect');
我想某种检查中,知道当用户从登录表单提到并删除会话auth.redirect的AppController的???
或更好的检查当前页面是否是登录表单,如果不是,则删除会话!
,并为那些有兴趣,这是我的登录方法目前的样子:
function login()
{
if(!(empty($this->data)) && $this->Auth->user())
{
$back_to = $this->Session->read('back_to');
$auth_redirect = $this->Session->read('Auth.redirect');
if($auth_redirect)
{
$this->redirect($auth_redirect, null, true);
}
else if($back_to)
{
$this->redirect($back_to, null, true);
}
else
{
$this->redirect($this->Auth->redirect(), null, true);
}
}
else
{
$this->Session->write('back_to', $this->referer());
}
}
感谢
@ Ethan的答案是正确的,当用户离开* *你的网站,你可以不知道。我认为你想避免的是一个非常狭窄的情况:用户进入你的站点,点击登录,离开页面,稍后回到登录页面,登录,然后重定向到他们以前的位置。就我个人而言,我对这种行为完全没问题,并且很多人不会注意到或关心它。而且,'Auth。重定向“值不会永远存在。会议最终会过期,通常会在几个小时内完成,这使得这种边缘案例更加罕见。 – deceze
如何检查他们是否正在查看登录表单,如果不是,则删除会话,以便它只存在于登录表单中,并在重定向后存在,然后如果他们改变了主意,它将被取消,而back_to会被用来代替。你能帮忙吗?干杯 – Cameron