2010-11-13 135 views
1

我在CakePHP中的身份驗證有問題。無論我嘗試什麼,Cake都會告訴我在每次請求後都會取消身份驗證,即使我之前關閉了瀏覽器,我仍然可以進行身份​​驗證。CakePHP會話超時問題

我會用幾句話解釋我的驗證系統是如何工作的。用戶登錄,或者選中remember me複選框。如果選中,我會創建一個cookie,以便用戶下次訪問該網站時自動登錄。基本上,當用戶關閉瀏覽器時,我需要刪除Cake在瀏覽器中存儲的所有會話cookie。這樣,當用戶回來時,如果他不想被記住,他會看到登錄頁面,或者如果他選擇存儲cookie,它會自動從remember me cookie登錄。

問題是我在Core.php中同時使用了Session.timeout和Security.level,沒有任何積極的結果。如果我將超時設置爲0,那麼Cake會在每次請求後取消授權,因此我無法查看任何頁面。如果我將其他值設置爲超時,用戶可能會關閉瀏覽器,並且當他重新打開它時,他仍然可以登錄,因爲Cake會話沒有過期。

總之,每當關閉瀏覽器時,如何自動刪除會話cookie?

回答

3

看看這篇文章也許可以幫助你,我使用類似的東西用於其他目的。

http://bakery.cakephp.org/articles/admad/2009/09/02/how-to-bend-cakephp-s-session-handling-to-your-needs

見:ini_set('session.cookie_lifetime', 0);

+0

謝謝!但有一件事仍然困擾着我。 Cake的Session.timeout與php ini的session.cookie_lifetime是一樣的嗎?另外,我的Session.save應該設置爲什麼值? '蛋糕'還是'php'? – linkyndy 2010-11-13 12:30:10

+0

如何在文章中解釋你必須創建一個帶有會話配置的php文件並將其保存在'config'文件夾中。例如,如果你稱之爲'my_session',你必須編寫Configure :: write('Session.save','my_session');在'核心'文件中。在cake_session.php中查看一下,瞭解Session.timeout如何在cakephp – riotera 2010-11-13 12:38:32

+0

中工作。非常感謝您的快速響應! – linkyndy 2010-11-13 14:19:06