ฉันใช้คลาสมิดเดิลแวร์ในแอปพลิเคชัน 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
ได้อย่างไร
'_dummy_session'
ใช่หรือไม่ - person iain   schedule 06.08.2013env
หลังจากที่@app.call(env)
ถูกเรียก คุณจะเห็นเซสชันอยู่ข้างใน ลองดูใน env สำหรับ"HTTP_COOKIE"
,"rack.request.cookie_hash"
และด้านในของอันสุดท้าย"rack.request.cookie_string"
- person iain   schedule 06.08.2013