Dis*_*nty 6 ruby rack passenger
我找不到任何简单的使用示例,Rack::Session::Cookie并且希望能够将信息存储在cookie中,并在以后的请求中访问它并使其过期.
这些是我能找到的唯一例子:
这是我得到的:
use Rack::Session::Cookie, :key => 'rack.session',
:domain => 'foo.com',
:path => '/',
:expire_after => 2592000,
:secret => 'change_me'
Run Code Online (Sandbox Code Playgroud)
然后设置/检索:
env['rack.session'][:msg]="Hello Rack"
Run Code Online (Sandbox Code Playgroud)
我找不到任何其他指南或示例来设置此.有人可以帮忙吗?
您已经在问题中设置了 cookie。我不确定你所说的“设置”是否还有其他含义。
相反,env['rack.session']您可以使用session[KEY]它来简化。
session[:key] = "vaue" # will set the value
session[:key] # will return the value
Run Code Online (Sandbox Code Playgroud)
简单的西纳特拉示例
require 'sinatra'
set :sessions, true
get '/' do
session[:key_set] = "set"
"Hello"
end
get "/sess" do
session[:key_set]
end
Run Code Online (Sandbox Code Playgroud)
更新
我相信它不适合你,因为你设置了无效的域名。所以我不得不把它去掉: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
Run Code Online (Sandbox Code Playgroud)
msg访问根目录或/默认为“未设置”,如果您通过?msg=someSTring它,则应使用新值设置消息。/sess以检查会话中的内容。您可以从如何在 Rack 应用程序中设置/获取会话变量中获取一些提示?
| 归档时间: |
|
| 查看次数: |
5400 次 |
| 最近记录: |