私は 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
クッキーは暗号化されています。また、セッション値も記憶しています。
しかし、Firebug を使用しているときに、すべてのリクエスト (ページの読み込み、更新など) で Cookie のコンテンツが変更され、つまり完全に変更されていることに気付きました。Sinatra はリクエストごとに新しい Cookie を送信しているようです。
以前はenable :sessions
、Cookie を使用していましたが、変更されることはありませんでした。
私の質問は、セッション中にリクエストごとに Cookie のコンテンツが変更されるのは正常なことですか?
暗号化されているために発生していますか?
ネットで高低を検索しましたが、誰もこの問題を抱えていないと思います..