1

私は 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 のコンテンツが変更されるのは正常なことですか?

暗号化されているために発生していますか?

ネットで高低を検索しましたが、誰もこの問題を抱えていないと思います..

4

1 に答える 1