我有一个模块化的 sinatra 应用程序,其配置如下:
configure do
disable :protection
use Rack::Protection
enable :sessions
set :session_secret, ENV.fetch('SESSION_SECRET') { SecureRandom.hex(64) }
set (:cookie_options) do {
:SameSite => "Lax",
:expires => Time.now + 1.month,
:secure => true
}
end
end
行
:secure => true
工作正常,但 SameSite 不行。我不知道如何改变这个。
另外:我不知道如何将机架会话 cookie 设置为
secure: true
很晚才回答,但我也遇到了同样的情况,看起来适合我的相关选项是
:same_site
。
set :cookie_options do
{
:same_site => :lax # or :strict
...
}
end
我遇到了类似的问题,发现上面的答案没有解决问题(没有错误,但同一站点没有修改,可能是因为经典应用程序(或较新的 Sinatra),无论如何,我最终发现了
configure do
set :sessions, same_site: :strict
:
end
成功了,详情这里。