gpt4 book ai didi

ruby - 是否有 Rack::Session::Cookie 用法的基本示例?

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:49 27 4
gpt4 key购买 nike

我找不到任何使用 Rack::Session::Cookie 的简单示例,并且希望能够将信息存储在 cookie 中,并在以后的请求中访问它并让它过期.

这些是我能找到的唯一示例:

这是我得到的:

 use Rack::Session::Cookie, :key => 'rack.session',
:domain => 'foo.com',
:path => '/',
:expire_after => 2592000,
:secret => 'change_me'

然后设置/检索:

env['rack.session'][:msg]="Hello Rack"

我找不到有关此设置的任何其他指南或示例。有人可以帮忙吗?

最佳答案

您已经在问题中设置了 cookie。我不确定您所说的“设置”是否还有其他含义。

为了简化,您可以使用 session[KEY] 而不是 env['rack.session']

session[:key] = "vaue" # will set the value
session[:key] # will return the value

简单的 Sinatra 示例

require 'sinatra'
set :sessions, true
get '/' do
session[:key_set] = "set"
"Hello"
end
get "/sess" do
session[:key_set]
end

更新

我认为它对您不起作用,因为您设置了无效的域。所以我不得不把它去掉 :domain => 'foo.com',。顺便说一句,Sinatra 包装了 Rack cookie 并公开了 session 帮助程序。所以上面的代码对我来说很好用。我相信以下代码应该按预期工作。

require 'sinatra'
use Rack::Session::Cookie, :key => 'rack.session',
:expire_after => 2592000,
:secret => 'change_me'
get '/' do
msg = params["msg"] || "not set"
env["rack.session"][:msg] = msg
"Hello"
end
get "/sess" do
request.session["msg"]
end
  • set session value msg access root or / 默认为 'not set' 如果你传递 ?msg=someSTring 它应该设置 msg 与新值(value)。
  • 访问 /sess 以检查 session 中的内容。

您可以从 How do I set/get session vars in a Rack app? 中获取一些线索

关于ruby - 是否有 Rack::Session::Cookie 用法的基本示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18326681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com