a2ikm/rack-dynamic_session_secure
RailsのセッションストアではRack::Session::Abstract::ID
に渡される:secure
オプションの値によってCookieのsecure属性を付けたり外したりできるんだけど、基本的にベタの値*1しか受け付けていない。
これをリクエストによって切り替えられると嬉しい場面が出てきたので、Procを渡して動的に評価されるよう書いてみた。Railsだとこんな感じ:
# Gemfile gem 'rack-dynamic_session_secure', github: 'a2ikm/rack-dynamic_session_secure' # config/initializers/session_store.rb secure = ->(env) { !!(Rack::Request.new(env).path =~ /neko/) } MyApp::Application.config.session_store :some_store, { secure: secure }
セッションストアを初期化する際に評価するようモンキーパッチをあてていて、とりあえず動いているんだけど、これですべてがカバーできているかはちょっと自信がない。あとテストが書かれていない。
*1:truthyかfalseyか