我找不到使用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"
我找不到任何其他指南或示例来设置此功能。有人可以帮忙吗?
答案 0 :(得分:2)
您已在问题中设置了Cookie。我不确定你是否通过“设置”来表示其他内容。
您可以使用env['rack.session']
代替session[KEY]
进行简化。
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',
。 BTW 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
msg
访问权限或/
默认为“未设置”如果您通过?msg=someSTring
,则应将msg设置为新值。/sess
以查看会话中的内容。答案 1 :(得分:0)
检查以下示例。它可能会给你一个好主意
http://chneukirchen.org/repos/rack/lib/rack/session/cookie.rb