加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Rack Session Cookie和Sinatra – 设置和访问数据

发布时间:2020-12-17 04:15:22 所属栏目:百科 来源:网络整理
导读:我正在使用机架会话池,但是我的用户会被一个网络服务器线程踢到另一个网络服务器线程上,使会话数据到期.我开始在Sinatra中启用:会话,但是我无法使用它,因为我有使用Sinatra的多个应用程序(它似乎正在使用相同的密钥 – 不确定这是因为它是否是相同的主机)
我正在使用机架会话池,但是我的用户会被一个网络服务器线程踢到另一个网络服务器线程上,使会话数据到期.我开始在Sinatra中启用:会话,但是我无法使用它,因为我有使用Sinatra的多个应用程序(它似乎正在使用相同的密钥 – 不确定这是因为它是否是相同的主机)

因此,由于我的应用程序会相互破坏,我现在正在尝试使用Rack Session Cookie并设置变量(与启用相同:会话,但您可以设置变量)

伟大,所以有效!但是现在我无法以我使用它的方式访问会话数据,在Rack Session Pool和enable:sessions中

session[:user] = nick
puts session[:user]

你明白了……

问题是为什么我可以在Pool和Sinatra中使用session [:user]启用会话数据,但是不能在Rack Session Cookie中访问会话数据?我错过了什么吗?我正在做的就是下面

config.ru

use Rack::Session::Cookie,:key => 'key',:domain => "localhost",:path => '/',:expire_after => 14400,# In seconds
                             :secret => 'secret'

编辑:

做了一些测试并发现它实际上把它放在会话变量中,但是一旦它移动到新方法或重定向会话变量似乎被删除(这个cookie真的大于4KB?!) – 它可以’因为启用:会话工作得很好

解决方法

这是我为解决这个问题所做的工作:
use Rack::Session::Cookie,:key => 'my_app_key',# In seconds
                             :secret => 'secret_stuff'

你看到了与上面的区别吗? – 没有域名,如果我让Rack :: Session :: Cookie指定域名或浏览器(无论是谁),我在mutliple Sinatra / Rack应用程序之间没有错误……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读