私は理由は分かりませんが、セッションはすべてのリクエストを一掃します。Sinatraセッションが自動的に破棄されます
これは、例えば、あなたがセッションの秘密を設定する必要が一貫したセッションを維持するために私のコード
require 'rubygems'
require 'sinatra'
require 'sinatra/base'
require 'haml'
require 'facebook_oauth'
class MyClass < Sinatra::Base
set :logging, true
set :sessions, true
get "/auth/facebook_callback" do
// Do some facebook login which is fine
access_token = facebookClient.authorize(:code => params[:code])
session[:access_token] = access_token.token
session[:user] = facebookClient.me.info['name']
session[:id] = facebookClient.me.info["id"]
#print session by "pp session" I can still see all the sessions
redirect '/'
end
get '/' do
#print all the sessions again. And I can't see anything. The session_id is also different
end
end
私はあなたのコードを単純化してここで実行するとうまくいきます。追加データを提供できますか?申し訳ありませんが、Cookie *はブラウザで有効になっています。あなたはHTTPヘッダーを見てみましたか? –
セッションがリセットされているということは、それが[攻撃防御](http://www.sinatrarb.com/intro.html#Configuring%20attack%20protection)と関係があることを示唆しています。 'disable:protection'を追加して、それが何か変わるかどうか確認してください。 (保護を無効にしておくことはお勧めしませんが、何が起こっているのかを判断するのに役立ちます)。 – matt
お互いありがとう、私はちょうどチェックして、私はサーバーが毎回再起動されるようにショットガンを実行していた。 – toy