所以,我有一些current_user方法,它從cookie的auth_token
中獲取ID,並且我希望cookie在與站點的窗口關閉時被刪除。如何在窗口關閉時刪除cookie?
cookies[:auth_token] = @user.auth_token
我必須補充什麼?
所以,我有一些current_user方法,它從cookie的auth_token
中獲取ID,並且我希望cookie在與站點的窗口關閉時被刪除。如何在窗口關閉時刪除cookie?
cookies[:auth_token] = @user.auth_token
我必須補充什麼?
實際上,如果您設置的cookie未提供過期日期,那麼 只會保留,直到瀏覽器關閉。 (這可能意味着 程序本身,而不僅僅是一個窗口或選項卡。)
過期過期將立即刪除cookie。
從主題:http://www.ruby-forum.com/topic/94682
@Joe半臉,如果它可以幫助你,請註明它是有用的。
它的工作原理,但我不知道如何設置cookie從頭開始過期好?附:我不想在用戶註銷時關注用戶活動 – 2013-05-13 21:51:43
不,它立即刪除cookie,我發現...... Guy給出了錯誤的答案。即使點擊重新加載也會跳出登錄頁面 – 2013-05-13 21:53:51
我曾經實施過類似的事情。出於安全考慮,我們必須在用戶離開頁面時自動登錄用戶。解決方案如下所示:
beforeunload
事件處理程序。beforeunload
事件處理程序等待其完成。
查找[當瀏覽器窗口關閉或用戶導航時觸發的事件](http://stackoverflow.com/questions/1025935/capture-event-onclose-browser)和[更新cookie的到期日期](http://stackoverflow.com/questions/2144386/javascript-delete-cookie)在該事件處理程序。 – Tony 2013-05-13 20:47:59
所以這是通過JS完成的?沒有內置的Rails功能?比'cookies'和'cookies.permanent'之間有什麼區別? – 2013-05-13 20:51:54
開始時沒有注意到ruby-on-rails標籤。我不太熟悉Rails(更多是Django的人)。由於Cookie保存在用戶的瀏覽器中,你當然可以在JS的客戶端處理它們。從Rails開始可能會更方便,但是您必須從JS中的'beforeunload''處理程序發出一個AJAX請求,才能從Rails獲得新的響應以及更新後的Cookie。 – Tony 2013-05-13 21:15:36