[英]How current_user works in devise rails
一段時間以來,我一直在使用devise gem對我的rails應用程序進行身份驗證,而我剛剛開始懷疑current_user
工作方式
如何設計節省了CURRENT_USER?
我懷疑答案是第一Browser session
。 原因是即使重新啟動應用程序,並且您嘗試從已經用於登錄的瀏覽器再次訪問該應用程序,它也會自動使您登錄。
我的困惑是:如果是瀏覽器會話,則意味着當瀏覽器重新啟動(會話結束)時, current_user
應該過期,並且用戶注銷; 但這行不通。
那么, current_user
如何運行? 感謝您的所有貢獻。
current_user
通過在應用程序會話中存儲當前用戶的ID來工作。 最常見的會話存儲在cookie中。 Cookie是否在瀏覽器重啟后仍然有效,取決於客戶端的瀏覽器設置。
如果您單擊remember_me
它將在永久cookie中存儲用戶唯一的簽名令牌,並將其存儲在瀏覽器中。 它也保存在數據庫中。
再次調用current_user時,rails檢查是否存在永久cookie,如果存在,則將其與數據庫中的永久cookie進行比較。 如果它們相同,那么您將以該用戶身份登錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.