私は現在、私が構築している新しいRackアプリケーションにWardenを統合しています。私はrecent patchを実装して、セッションのシリアル化方法を指定できるようにしたいと思っています。具体的には、Rack::Session::Cookie::Identity
をセッションプロセッサとして使用したいと考えています。ラックでカスタムCookieセッションシリアライザを使用するにはどうすればよいですか?
残念なことに、私のラックアップファイルにRack::Session::Cookie
を設定するためにどのような構文を使用すべきかに関するドキュメントは少し不明です。誰かが私が間違っていることを教えてもらえますか?薄い
!! Unexpected error while processing request: undefined method `new' for #<Rack::Session::Cookie:0x00000110124128>
PSから
config.ru
require 'my_sinatra_app'
app = self
use Rack::Session::Cookie.new(app, Rack::Session::Cookie::Identity.new), {:key => "auth_token"}
use Warden::Manager do |warden| # Must come AFTER Rack::Session
warden.default_strategies :password
warden.failure_app Jelli::Auth.run!
end
run MySinatraApp
エラーメッセージ:私は私の宝石の依存関係を管理するために、バンドラを使用していると私は同様に、ラックのmasterブランチを含めました希望のバージョンとして。
更新:以下のコメントに示唆されているとおり、私はdocumentationを読んでいます。悲しいことに、ドキュメントの提案された構文は機能しません。
更新:まだ私の最後に運がない;これを理解するのを助けることができる人に恩恵を提供する。
'app'変数に正確に何が含まれているかを明確にすることができますか? –
申し訳ありません、これは 'require 'my_sinatra_app'に基づいたコードスニペットです。 app = self' – stef
説明をありがとう。私はそれをもう少し詳しく説明していますが、 'session_appを使用する 'ことが、私を台無しにしていたものです。ラップアップファイル内で新しい 'Rack :: Session :: Cookie'クラスをインスタンス化すると、セッションアプリがラックスタックに追加されていることがわかりました。助けてくれてありがとう! –