Rack Session Cookie и Sinatra - настройка и доступ к данным

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

Итак, поскольку мои приложения могут сломать друг друга, я сейчас пробую Rack Session Cookie и устанавливаю переменные (то же самое, что и enable: sessions, но вы можете установить переменные)

Отлично, это работает! Но теперь я не могу получить доступ к данным сеанса так, как я их использовал, в Rack Session Pool и в enable: sessions

session[:user] = nick
puts session[:user]

, вы поняли ...

Вопрос в том, почему я могу получить доступ к данным сеанса с помощью session [: user ] в Pool и Sinatra enable: sessions, но не в Rack Session Cookie? Я что-нибудь упускаю? Все, что я делаю, находится ниже

config.ru

  use Rack::Session::Cookie, :key => 'key',
                             :domain => "localhost",
                             :path => '/',
                             :expire_after => 14400, # In seconds
                             :secret => 'secret'

РЕДАКТИРОВАТЬ:

Провел еще несколько тестов и обнаружил, что « s фактически помещает его в переменную сеанса, однако, как только он переходит к новому методу или перенаправлению, переменная сеанса, кажется, отбрасывается (действительно ли этот файл cookie больше 4 КБ ?!) - этого не может быть, потому что enable: sessions работает просто отлично

8
задан nictrix 3 March 2011 в 05:08
поделиться