我正在使用Zend rememberMe函數實現自動登錄的記住我複選框。我在控制器內寫入了這個條件用於登錄,但我希望它在每次自動登錄時重置爲7天(只要當前登錄是自動登錄)。
$ seconds = 60 * 60 * 24 * 7; // 7天
Zend_Session :: rememberMe($秒);
是否有默認的zend函數在每次訪問期間更新cookie。順便說一句,我是新來的編碼。希望有人能幫助我。謝謝。如何在每次自動登錄時重置Zend rememberMe函數?
2
A
回答
2
您不想在每次訪問時使用Zend_Session::rememberMe()
來設置cookie。造成這種情況的原因很簡單,因爲每次撥打rememberMe()
都會導致生成一個新的會話ID,並將cookie替換爲具有新ID的cookie。舊會話中的數據被複制到新會話中,舊會話被刪除。
雖然沒有真正的傷害會出現這種情況,但每個請求都會有這樣的開銷。根據Zend的說法,最好的做法是在會話開始後調用它。另外,如果您對每個請求都無條件地執行此操作,則可以區分延長時間後的自動登錄和隨意瀏覽的唯一方法是將時間戳存儲在會話中,並在每個請求的開始時檢查它並設定時間限制以確定一個人已經離開。
取而代之,您可以在返回的訪問者前往您的登錄頁面登錄時執行此操作;你可以重定向他們,他們會在沒有認證的情況下登錄。
或者,如果您想定期更新會話cookie,則可以在啓動會話後在Bootstrap.php
文件中調用rememberMe()
。如果你從一個插件或者直接在控制器中開始會話,你應該在會話開始之後把記住我的呼叫放在那裏,並且每隔一段時間(根據你的判斷)執行一次。
請參閱session_regenerate_id()當您撥打Zend_Session::rememberMe()
和Zend Framework - Session Identifiers以及關於會話劫持和修復的以下部分時會被調用。
0
你不能使用Zend_session來做到這一點。使用cookies來記住我。
相關問題
- 1. 如何進入自動重複登錄?
- 2. 如何設置登錄憑據並在Android中自動登錄
- 3. 每次登錄和註銷Windows XP時,如何記錄時間?
- 4. 密碼重置後自動登錄?
- 5. 如何強制用戶每次登錄?
- 6. 在Greasemonkey中自動登錄?
- 7. Asp.net 4,陣列重置每次運行?
- 8. 如何在每次重新啓動後自動運行命令
- 9. VB.NET登錄控件自動從另一個函數登錄
- 10. 如何自動登錄puttycm?
- 11. Firebase RememberMe功能
- 12. .bashrc代碼在第一次登錄時每天執行1次
- 13. 每當電腦自動重新啓動時PhpStorm重置設置
- 14. php自動每日http登錄請求
- 15. 如何在應用程序啓動時自動登錄
- 16. ASP.NET登錄自動重定向到Default.aspx
- 17. 每次用戶滾動時如何調用javascript函數
- 18. 每次以沙箱模式啓動時必須登錄到GameCenter
- 19. 如何在初始登錄後自動登錄用戶?
- 20. Facebook的自動重新登錄
- 21. 如何防止自動登錄google oauth?
- 22. 自動登錄
- 23. 自動登錄
- 24. Django在每次請求時自動重新開發?
- 25. ASP.Net FormsAuthentication了rememberMe
- 26. Python - youtube-dl強制每次登錄
- 27. Rails:如何設置上次登錄日期時間
- 28. 如何在每次訪問標籤時重新創建活動
- 29. 如何在每次調用函數時動態創建新數組?
- 30. Zend登錄問題
zend docs說在開始會話之前調用rememberMe「在啓動會話之前使用Zend_Session :: rememberMe()來控制持續會話cookie過期之前的時間長度。」 – 2012-02-24 06:38:58
正確,他們確實會說在調用之前會話開始控制cookie的到期時間。爲了澄清這種情況,因爲'rememberMe()'也調用'Zend_Sesssion :: regenerateId()',所以調用'regenerateId()'的最佳實踐是在會話啓動後調用它。在曲中,他想要經常這樣做,所以我會在會話開始之後這麼做,以便在恢復上一個問題後用新ID設置新的cookie。 – drew010 2012-02-24 16:47:25