我是 Web 应用程序开发的新手,刚刚开始学习 Sinatra 框架。我目前正在开发一个登录系统。这是必要的代码:
require 'sinatra'
require 'openssl'
require 'encrypted_cookie'
configure do
use Rack::Session::EncryptedCookie, :secret => "foo-bar-baz", :httponly => true
然后,如果他/她被授权,我会将用户名存储在会话中:
post '/' do
if authorize(params[:name], params[:password], params[:csrfkey])
session[:name] = params[:name]
end
end
cookie 是加密的。它还记住了会话值。
但是在使用 Firebug 时,我注意到在每次请求(页面加载、刷新等)时,cookie 的内容都会改变,我的意思是完全改变了。似乎 Sinatra 在每次请求时都会发送新的 cookie。
以前,我使用enable :sessions
& cookie 从未改变。
所以我的问题是,在会话期间每次请求都更改 cookie 的内容是否正常?
它发生是因为它是加密的吗?
我在网上搜索了高低,但我猜没有人遇到这个问题..