มีวิธีรับชื่อคุกกี้เซสชันในมิดเดิลแวร์ของแร็คหรือไม่

ฉันใช้คลาสมิดเดิลแวร์ในแอปพลิเคชัน 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

ฉันจะรับชื่อของคุกกี้เซสชัน ('_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