我使用Rack在我的Sinatra應用中嘗試實現「記住我」功能。以編程方式設置機架會話Cookie過期
我可以將會話cookie設置爲在會話結束或X秒鐘時間內過期,但我想同時執行這兩個操作。
例如,如果用戶點擊了「記住我」,那麼我希望他們的會話在X秒後結束。例如,我的app.rb有一行看起來像這樣:
use Rack::Session::Cookie, :expire_after => 2592000, #30 days in seconds
:secret => MY_SECRET
我試着做以下時,在用戶登錄:
if (!remember_me)
env['rack.session.options'][:expire_after] = nil
end
然而,這並沒有設置cookie值。
有誰知道如何設置?
在此先感謝。
不要忘記,如果您隨後在會話散列中設置/刪除了任何內容,則Cookie將恢復爲默認的過期日期(即會話cookie)。爲了使其在後續更改中保持不變,您還需要在會話哈希自身內存儲標記「記住我」狀態的標誌。 – 2013-10-07 19:18:47