Есть ли способ получить имя файла cookie сеанса в промежуточном программном обеспечении стойки?

Я использую класс промежуточного программного обеспечения в приложениях Rack, Ruby on Rails и Sinatra.

Стойочное приложение

config.ru:

use Rack::Session::Cookie, key: '_dummy_session', secret: '...'
use MyMiddleware
run Dummy.new

Приложение Ruby on Rails

config/initializers/secret_token.rb:

Dummy::Application.config.secret_key_base = '...'

config/initializers/session_store.rb:

Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'

config/initializers/my_middleware.rb:

Dummy::Application.config.middleware.use 'MyMiddleware'

Класс ПО промежуточного слоя

lib/my_middleware.rb:

class MyMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    ...
    @app.call(env)
  end
end

Как я могу получить имя файла cookie сеанса ('_dummy_session') в методе MyMiddleware#call?


person Community    schedule 03.08.2013    source источник
comment
Название? Вы имеете в виду строку, используемую для ключа, '_dummy_session'?   -  person iain    schedule 06.08.2013
comment
Да, '_dummy_session'.   -  person    schedule 06.08.2013
comment
Если вы посмотрите на env после вызова @app.call(env), вы увидите сеанс внутри него. Посмотрите в env для "HTTP_COOKIE", "rack.request.cookie_hash" и внутри последнего "rack.request.cookie_string".   -  person iain    schedule 06.08.2013
comment
См. раздел stackoverflow.com/questions/9113162/.   -  person bryanbraun    schedule 13.05.2014