Использование Rack::Session::Pool с Синатрой
-
12-09-2019 - |
Вопрос
Я изучаю Синатру и хочу использовать сеансы, но не хочу, чтобы они хранились в файлах 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
Спасибо !