红宝石 – Sinatra清除会话
enable :sessions set :session_secret,'secret' post '/login' do session[:loggedInUser] = jsondata['username'].to_s puts session[:loggedInUser] + " is the session" end 一切都很好,在这一点上.当我读这个会话时: get '/debug' do session.inspect end 在那里但是这里出现了这个问题.后来我再去另一个帖子请求: post '/foo' do # do nothing end 会话被清除. 为什么?这是一个bug吗? 编辑 我缩小了问题:我通过nginx来宣传Sinatra,到http://app.local/backend – 这是当问题发生时.如果我通过http:// localhost:4567运行Sinatra,它都按预期工作. 解 使用Rack :: Session :: Cookie而不是默认的enable:sessions: use Rack::Session::Cookie,:key => "rack.session",:path => "/backend" # etc 从Sinatra FAQ:
解决方法
我正在遭受与你同样的问题:会议在职后被清除.
我不知道为什么这样工作,但这是我的解决办法: #enable :sessions use Rack::Session::Cookie,:key => 'rack.session',:path => '/',:secret => 'your_secret' 我真的只是使用Rack :: Session :: Cookie …替换了enable:sessions位,现在全世界都很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |