机架会话在 Chrome 中丢失

Posted

技术标签:

【中文标题】机架会话在 Chrome 中丢失【英文标题】:Rack Sessions getting lost in Chrome 【发布时间】:2013-11-03 12:06:09 【问题描述】:

我有一个非常简单的应用程序,托管在使用 Sinatra 构建的 EC2 上,在 nginx 后面提供了瘦身服务。问题在于,对于 Chrome,会话变量在 Sinatra 中会“丢失”。它不会在 Firefox 中发生。

这是使用 Rack::Session::Cookie。这和这个问题类似:Sinatra not persisting session with redirect on Chrome

如果您能提供任何有关如何在 Chrome 中解决此问题的见解,我们将不胜感激。

【问题讨论】:

我在使用 Chrome 时遇到了同样的问题(即适用于 Firefox、Safari)。你还记得这个问题吗? 【参考方案1】:

确保您正在设置以下内容:

configure :development do
  set(:session_secret, 'a random string that wont change')
end

configure :production do
  set(:session_secret, '*&($)UIJH$(&*(&*(@(*)(!)))IUYA0984))')
end

configure do
  enable :sessions    
end

【讨论】:

是的,我有一个秘密集并启用了会话。就像我说的:会话正在运行,但在 Chrome 中,会话信息会在某些请求时消失。我认为这与 chrome 处理 cookie 有关。

以上是关于机架会话在 Chrome 中丢失的主要内容,如果未能解决你的问题,请参考以下文章

会话数据仅在 Chrome 中丢失

Chrome 和 IE 不发送 ASP.NET_SessionID - 即会话变量丢失?

为啥我在 IE 9 中丢失了有关 Ajax 请求的 cookie 和会话

在 wordpress 中提交表单后会话丢失

页面之间的会话变量丢失[重复]

设置 http 标头时丢失会话数据(在 CodeIgniter 中)