簡體   English   中英

current_user如何在devise rails中工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM