【问题标题】:Using Rack::Session::Pool with Sinatra在 Sinatra 中使用 Rack::Session::Pool
【发布时间】:2010-10-31 21:37:05
【问题描述】:

我正在探索 Sinatra,我想使用会话,但我不想将它们存储在 Cookie 中,我发现 Rack::Session::Pool 效果很好。

现在我希望会话在一段时间后过期,但我不明白如何实例化 Rack::Session::Pool 并且他们在 Sinatra 中使用它。

有什么线索吗?

【问题讨论】:

标签: ruby-on-rails ruby sinatra


【解决方案1】:

Sinatra 非常强大,来自 The Wicked Flea 的技巧没有奏效,但它确实奏效了:

use Rack::Session::Pool, :domain => 'example.com', :expire_after => 60 * 60 * 24 * 365

谢谢!

【讨论】:

    【解决方案2】:

    在您的机架文件中:

    %w(rubygems rack sinatra).each { |dependency| require dependency }
    disable :run
    
    require 'myapp'
    
    sessioned = Rack::Session::Pool.new(
      Sinatra::Application,
      :domain       => 'example.com',
      :expire_after => 60 * 60 * 24 * 365 # expire after 1 year
    )
    run sessioned
    

    要启动运行rackup app.ru,或使用Passenger等。这应该将您的应用程序包装在会话池中并启用其功能。我不完全知道为什么它不需要像大多数其他中间件一样使用

    了解我根本没有测试过这个,我还没有需要会话池的东西。我是从documentation 为 Rack::Session::Pool 写的,页面顶部有一个示例。所以,我也不能确切地告诉你如何使用它。

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 2013-10-12
      • 2016-03-06
      • 2013-09-06
      • 2012-11-14
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 2011-01-15
      相关资源
      最近更新 更多