Sinatra 不会通过 Chrome 上的重定向来保留我的会话。它正在创建一个全新的会话,而我正在丢失以前的所有会话数据。
举个例子(类似于西纳特拉文档 http://www.sinatrarb.com/intro#Browser%20Redirect),我正在做这样的事情:
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
我认为这与不同浏览器在重定向响应后如何响应处理会话有关。有没有人见过类似的事情,或者对如何在仍然使用会话的情况下解决这个问题有任何想法?
提前致谢!
将其添加到您的主应用程序文件中:
使用 Rack::Session::Cookie, :key => 'rack.session',
:路径=>'/',
:secret => '一些随机字符串'
添加后,您应该能够分配 session['whatever'] 并使其按预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)