セッションメンバーが設定されていても、セッションメンバーが利用できないという問題を解決しました。問題が発生した理由を知りたいと思っています。 :session
を使用してSinatraのセッションメンバーが「消えています」
- シナトラアプリ:私の状況はとして記述することができます。
- oAuthを使用してユーザーを認証し、プロセスで
:ret_url
セッションメンバーを設定して、認証後にどこに戻ってくるかをアプリが認識できるようにします。 - Serverは、シーダー・スタック(Herokuの)
これは、ローカルで実行しながら、完璧に動作しますが、:ret_url
セッションメンバーが完全にHerokuの上のセッションから消えたのユニコーンです。私はこのコードを削除した場合、それは問題を修正していることが見つかりました:
before do
cache_control :public, :must_revalidate, :max_age => 60
end
は質問1:私は私のクッキーが: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
私はcacheingを使用し、まだ私のクッキーが有効であるしたいのですが。
セッション秘密鍵を設定しましたか? set:session_secret、 'super secret' – mscccc
Sinatraアプリケーションをローカルで実行しても、Heroku上で動作しているときにセッションメンバーが存在する問題が発生しています。私はoAuthを使って試してきましたが、今はコアラとFacebookとのやりとりをしていて、どちらも同じ問題を抱えています。 –