セッション メンバーが設定されているのに使用できないという問題のトラブルシューティングに成功しました。その理由を知りたいです。私の状況は次のように説明できます。
- を使用したシナトラアプリ
:session
。 - oAuth を使用してユーザーを承認し、その過程で
:ret_url
セッション メンバーを設定して、アプリが認証後に戻る場所を認識できるようにします。 - サーバーは Cedar スタック (Heroku) のユニコーンです
これはローカルで実行している間は完全に機能しますが、:ret_url
セッション メンバーは Heroku のセッションから完全に消えていました。このコードを削除すると、問題が解決することがわかりました。
before do
cache_control :public, :must_revalidate, :max_age => 60
end
質問 1: 私の Cookie は:ret_url
値なしでキャッシュされていたと思いますが、それが壊れていた理由ですか?
質問 2: 以下のルート条件コードに示すようにセッション メンバーを設定していましたが、これは間違った場所ですか?
# redirect users to login if necessary
set(:auth) do |access_token|
condition do
if request.request_method == 'GET'
session[:ret_url] = request.path_info
end
redirect '/' unless user_logged_in?
end
end
キャッシュを使用したいのですが、Cookie を有効にしたままにします。