Вопрос

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

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

Есть подсказка?

Это было полезно?

Решение

В вашем файле рэкапа:

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

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

Другие советы

Синатра довольно силен, трюк из «Злой блохи» не сработал, но вот этот сработал:

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

Спасибо !

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top