2010-02-17 32 views
7

我正在使用Authlogic來管理我的應用程序中的會話。
但是,默認情況下,authlogic允許用戶從不同的計算機多次登錄。
我不希望這樣(用戶支付訪問權限,我想避免用戶分享他們的帳戶)。我發現perishable_token。但是當試圖實現它時,我只是得到一個錯誤,說persistence_token是必需的(當它不應該像我使用易腐爛的那個)。針對同一用戶的Authlogic和多個會話

您將如何使用Authlogic的功能來做到這一點?

謝謝:)

回答

16

好了,所以易腐令牌是絕對不正確的道路;)

我們「只是」需要在用戶每次登錄或註銷時重置持久性令牌。 有了這個在我UserSession模型中,每個用戶會從其他任何會話在登錄時註銷。

class UserSession < Authlogic::Session::Base 
    before_destroy :reset_persistence_token 
    before_create :reset_persistence_token 

    def reset_persistence_token 
     record.reset_persistence_token 
    end 
end 
+0

不錯的工作!我一直在尋找這個很長一段時間。 Ahm,你怎麼能發信息或提醒用戶他已經登錄到另一臺計算機? – jovhenni19 2011-10-10 03:38:58

+0

請注意,這意味着當你註銷時,如果用戶從其他設備或機器連接,他將被強制登錄出。不是最好的用戶體驗。 – 2015-03-02 11:34:55