Использование Rack :: Session :: Pool с Sinatra - PullRequest
6 голосов
/ 06 июня 2009

Я изучаю Синатру и хочу использовать сеансы, но не хочу, чтобы они сохранялись в Cookie, я нашел Rack :: Session :: Pool, который работает очень хорошо.

Теперь я хочу, чтобы сессии истекали через определенное время, но я не понимаю, как создать экземпляр Rack :: Session :: Pool и как они используют его в Sinatra.

Любая подсказка?

Ответы [ 2 ]

10 голосов
/ 06 июня 2009

Синатра довольно мощный, трюк со Злыми Блохами не сработал, но это сработало:

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

Спасибо!

5 голосов
/ 06 июня 2009

В вашем файле стойки:

%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 и т. Д. Это должно обернуть ваше приложение в пул сеансов и включить его функциональность. Я не совсем понимаю, почему ему не нужно использовать , как и большинству других промежуточных программ.

Поймите, что я вообще не тестировал это, у меня еще не было чего-то, что требовало пулов сеансов. Я написал это из документации для Rack :: Session :: Pool, в которой был пример вверху страницы. Так что я не могу точно сказать вам, как его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...