我想了解在使用rails/devise登錄用戶時發生了什麼。rails/devise如何處理cookie會話?
我創建了一個極小的rails應用程序,安裝了devise並創建了User
devise模型。 一切工作正常,當我登錄(使用remember me
)我得到一個會話cookie正如預期。
現在搞什麼的是:rails如何處理瀏覽器通過cookie傳遞的會話信息?
我天真地期望一些信息存儲在數據庫中,但我不知道在哪裏。沒有session
表格,Users
中沒有會話列,我在tmp
目錄中找不到任何感興趣的內容。
請注意,重新啓動服務器不會終止我的會話。這當然是可以預料的,但現在我真的很想知道這裏發生了什麼樣的魔法?
換句話說:服務器如何檢查cookie的有效性以認證用戶?
謝謝!
Devise在數據庫中存儲了一些信息('last_sign_in_at','last_sign_in_ip'等),但依靠cookies來模擬超時狀態會話一致性。該cookie具有「TTL」或生存時間,並且在檢查「記住我」時將該cookie寫入瀏覽器。 (根據我的理解,這至少是默認/最典型的系統,相對於設計) – mecampbellsoup