Sinatraを探索していて、セッションを使用したいのですが、Cookieに保存したくないので、Rack :: Session::Poolが非常にうまく機能していることがわかりました。
今、セッションを一定期間後に期限切れにしたいのですが、Rack :: Session :: Poolをインスタンス化する方法がわかりません。そして、Sinatraでそれを使用します。
どんな手掛かり ?
Sinatraを探索していて、セッションを使用したいのですが、Cookieに保存したくないので、Rack :: Session::Poolが非常にうまく機能していることがわかりました。
今、セッションを一定期間後に期限切れにしたいのですが、Rack :: Session :: Poolをインスタンス化する方法がわかりません。そして、Sinatraでそれを使用します。
どんな手掛かり ?
Sinatraは非常に強力で、The Wicked Fleaのトリックは機能しませんでしたが、これは機能しました:
use Rack::Session::Pool, :domain => 'example.com', :expire_after => 60 * 60 * 24 * 365
ありがとう !
ラックアップファイル:
%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
runを起動するrackup app.ru
には、またはPassengerなどを使用します。これにより、アプリケーションがセッションプールにラップされ、その機能が有効になります。他のほとんどのミドルウェアのように使用する必要がない理由は完全にはわかりません。
私はこれをまったくテストしていないことを理解してください。セッションプールを必要とするものはまだありません。これは、ページの上部に例があるRack :: Session::Poolのドキュメントから作成しました。ですから、使い方も正確には言えません。