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