Rack-Session-Cookie und Sinatra - Einstellung und den Zugriff auf Daten

War ich mit Rack-Sitzung Pool, aber meine Nutzer erhalten würde, traten aus einem webserver-thread auf einen anderen, wodurch die session-Daten ablaufen. Ich begann zu spielen, um mit nur enable :sessions im Sinatra, jedoch bin ich nicht in der Lage zu verwenden, denn ich habe mehrere apps mit Sinatra (gleiche Taste, es erscheint zu sein verwenden - nicht sicher, ob dies ist, weil Ihr die gleichen host oder nicht)

So, da meine apps brechen würde jede andere, die ich jetzt versuche Rack-Session-Cookie und die Einstellung der Variablen (das gleiche wie enable :sessions, aber Sie können die Variablen)

Großartig, so funktioniert das! Aber jetzt habe ich keinen Zugriff auf die session-Daten, so wie ich es benutze, in Rack-Session Pool und in enable: sessions

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

du auf die Idee...

Frage ist, warum kann ich auf die session-Daten mit session[:user] in Pool und Sinatra enable :sessions, aber nicht in Rack-Session-Cookie? Bin ich etwas fehlt? Alles was ich mache, ist unten

config.ru

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

EDIT:

Habe einige weitere Tests und fand, dass es eigentlich, dass es in die session-variable, jedoch sobald es sich um eine neue Methode oder Umleitung der session-variable angezeigt wird, gelöscht werden (ist das cookie wirklich größer als 4KBs?!) - es kann nicht sein, weil enable :sessions klappt wunderbar

  • Nur dump-Anfrage.cookies für jede Anfrage und finden Sie, wenn Sie etwas verdächtiges.
InformationsquelleAutor nictrix | 2011-03-03
Schreibe einen Kommentar