Sinatra不會在Chrome上通過重定向保留我的會話。這是創造一個全新的會議,我失去了我以前的會議數據。Sinatra不會在Chrome上持久保留重定向會話
爲例(類似於the Sinatra docs),我做這樣的事情:
enable :sessions
get '/foo' do
session[:user_id] = 123
session[:session_id] # "ABC", for example
redirect to('/bar')
end
get '/bar' do
# this is "DEF" when responding to Chrome (wrong),
# but "ABC" when responding to Firefox or Safari (right)
session[:session_id]
# this is nil when responding to Chrome (wrong),
# but 123 when responding to Firefox or Safari (right)
session[:user_id]
end
我想這事做與不同的瀏覽器重定向後處理會話如何應對響應。有沒有人看到過類似的東西,或者有什麼想法如何解決這個問題,同時仍然使用會話?
在此先感謝!
Sinatra中的默認會話處理是通過cookie完成的,所以我猜想這與Chrome處理(或拒絕處理)重定向的Set-Cookie請求有關。不知道如何處理這個問題,但圍繞整個問題的一個簡單方法是使用基於數據庫的會話,或使用redis或類似的內存會話。 – Jonah 2012-08-17 03:55:15
你的環境是什麼?我剛剛解決了一個涉及會話存儲器消失的問題,可能會引起人們的興趣,但這取決於發生在哪裏/如何發生在您身上。 – 2012-08-19 22:25:24
我遇到了同樣的問題,使用分段作爲環境。 – 2012-08-21 23:22:11