2014-02-14 48 views
1

有沒有簡單的方法來確定會話cookie是否使用ZF2啓用?確定會話cookie是否使用ZF2啓用

我使用Zend\Authentication\AuthenticationService在我的ZF2應用程序中登錄用戶。當我撥打authenticate()方法時,我得到一個有效的結果並設置了身份($result->isValid() == true$result->getIdentity()返回身份)。然後,我轉到另一個操作,如果Cookie被禁用,身份就會丟失。我沒有得到任何例外,我不知道如何測試在調用authenticate()之後身份是否已成功存儲在會話中。我只在下一個請求中發現身份已經丟失,這使得處理更加困難。

+0

請張貼您的操作代碼。 – Bilal

+0

_「我只在下一個請求中找到」_--當然這通常與cookie有關。您只能在下一次請求時發現cookie是否被客戶端發回。 – CBroe

回答

1

根據註釋,在設置cookie後無法檢查,您可以做的唯一事情就是查看cookie是否存在於後續請求中。這不應該是一個普遍的問題,但很少有用戶完全禁用cookie,而那些用戶會在很多網站上遇到問題。

我在過去的一個項目中做過的一件事就是將一個查詢字符串參數添加到用戶登錄後重定向到的URL - 類似?justLoggedIn=1。然後,如果此參數存在,該應用程序知道用戶應該登錄,因此檢查cookie。如果它不存在,它會再次將用戶重定向到用戶友好的「它看起來你有Cookie被禁用...」頁面並提供一些幫助。

+0

啊,好主意,我認爲我給它一個:) – aimfeld

+0

你的解決方案對我很好,謝謝 – aimfeld