簡體   English   中英

為什么合法用戶會自願退出?

[英]Why is a legitimate user getting logged out Involuntarily?

我有一個基於Rails 2構建的應用程序。如果用戶打開同一應用程序的兩個實例(dev,uat或任意兩個),則該用戶處於活動狀態時將注銷。 同樣,此行為也不一致。 有時會在登錄后2分鍾內發生,有時會在半小時內發生一次。

還要注意的一件非常有趣的事情是:如果我禁用CSRF令牌驗證,則除非會話超時或用戶自願注銷,否則用戶永遠都不會注銷。

-更新-在深入研究問題之后,我發現CSRF並非導致此問題的原因。 會話ID正在從Cookie中刪除。 可能是造成此問題的原因

因此,正如我在問題中已經說過的那樣,CSRF驗證不是注銷問題的原因。 因此,我進行了更深入的研究,發現session_id cookie被隨機刪除了,也就是說,當我嘗試進一步使用該應用程序時,它顯然已注銷。

因此,解決此問題的方法是確保不允許刪除session_id cookie。 為此,我將Cookie標記為安全。 盡管我仍然無法找出造成該Cookie刪除的根本原因。

我正在使用SqlSessionStore來存儲會話信息。 以下是我提出的修復程序:

ActionController::Dispatcher.middleware.swap(:"ActiveRecord::SessionStore",
                                             SqlSessionStore, {:secure => true})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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