Я использовал Rack Session Pool, однако мои пользователи будут выгнаны с одного потока веб-сервера на другой, что приведет к истечению срока действия данных сеанса. Я начал играть просто с включенными сеансами в Sinatra, однако я не могу его использовать, потому что у меня есть несколько приложений, использующих Sinatra (тот же ключ, который он использует - не уверен, так ли это, потому что это тот же хост или нет)
Так как мои приложения будут ломать друг друга, я сейчас пытаюсь использовать Rack Session Cookie и установить переменные (то же самое, что и enable: session, но вы можете установить переменные)
Отлично, так что работает! Но теперь я не могу получить доступ к данным сеанса так, как я их использовал, в пуле сеансов в стойке и во включенном состоянии: сеансы
session[:user] = nick
puts session[:user]
Вы поняли ...
Вопрос в том, почему я могу получить доступ к данным сеанса с сеансом [: user] в Pool и Sinatra enable: сеансы, но не в Rack Session Cookie? Я что-то пропустил? Все, что я делаю, ниже
config.ru
use Rack::Session::Cookie, :key => 'key',
:domain => "localhost",
:path => '/',
:expire_after => 14400, # In seconds
:secret => 'secret'
EDIT:
Провел еще какое-то тестирование и обнаружил, что он фактически помещает его в переменную сеанса, однако, как только он переходит к новому методу или перенаправлению, переменная сеанса, похоже, удаляется (действительно ли этот файл cookie больше 4 КБ ?!) - не может быть, потому что enable: сессии работают просто отлично