Question

J'explore Sinatra et je veux utiliser les sessions, mais je ne veux pas qu'ils soient stockés dans un cookie, j'ai trouvé rack :: Session :: piscine qui fonctionne très bien.

Maintenant, je veux des séances d'expirer après une certaine durée, mais je ne comprends pas comment instancier le Rack :: Session :: piscine et de les utiliser dans Sinatra.

Un indice?

Était-ce utile?

La solution

Dans votre fichier rackup:

%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

Pour lancer l'exécution rackup app.ru, ou utiliser des passagers, etc. Cela devrait envelopper votre application dans la piscine de session et permettre à ses fonctionnalités. Je ne sais pas tout à fait pourquoi il n'a pas besoin de utiliser comme la plupart des autres middleware.

Comprenez que je ne l'ai pas testé du tout, je ne l'ai pas eu quelque chose qui encore besoin piscines de session. J'ai écrit ce billet depuis de documentation pour Rack :: Session :: Piscine, qui a eu un exemple en haut de la page. Donc, je ne peux pas vous dire exactement comment l'utiliser soit.

Autres conseils

Sinatra est assez puissant, l'astuce de la puce Wicked ne fonctionnait pas, mais cela fait:

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

Merci!

scroll top