1

数日前から、本番サーバーで問題が発生しています。Rails 3.0.20 では、iPhone からの 2 つの JSON リクエスト間でセッションが失われるようです。

ログインは問題ありません。ログで確認できます。

しかし、'pull' と呼ばれる次のメソッドにはセッションがありません。

Started GET "/w/services/pull" for 109.1.101.218 at Tue Sep 24 10:12:43 +0000 2013
  Processing by ServicesController#pull as JSON
  Parameters: {"locale"=>"w"}

USER_AGENT
app/2.1.1 (iphone; ios 7.0.1; scale/2.00)
SESSION

ご覧のとおり、以下のメソッドではセッションは空です。

  def user_required!
    logger.info "SESSION"
    logger.info session[:user_id]

    return true if session[:user_id]
    return redirect_to(:controller => "/users", :action => "login")
  end

一部のユーザーにとって、セッションが 2 つのリクエスト間で維持されない理由がわかりませんでした。protect_from_forgeryを無効にしようとしましたが、問題は同じです (私の場合、2 番目の要求は GET です...)。

すべてのログ レベルをデバッグに設定しましたが、それ以上の情報はありません。


編集:サーバーでログ時間を使用して、セッションテーブルを見に行きました。失われたセッションが「短縮」されていることがわかります。

通常のセッション データ:

BAh7ByIMdXNlcl9pZGkCZiwiEF9jc3JmX3Rva2VuIjFPKzdRedDd3bHpWcjl6 SGRNNW1NMk4wNjZOYTJEU0R6MmlxdGxDMWRXM25B==

問題があると思われるセッション (短い):

BAh7BjoMdXNlcl9pZGkCThU==

もしかしたら、それが問題の元になるかもしれません...


編集 2: _csrf_token は 2 番目のセッション データの例に作成されませんが、理由はわかりません。

4

0 に答える 0