如何檢查用戶是否已經離開我的登錄表單?沒有登錄,但實際上離開它?用戶離開時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