Cookie を「セッション」タイプから「永続」タイプに変更する必要があります。さらに、「omniauth-facebook」と連携させる必要があります。以下の例では、すべてがうまく機能していますが、omniauth を使用すると、Cookie がまったく設定されません。これは私が書いたテストコードです:
「ルビジェム」が必要
「シナトラ」が必要
「encrypted_cookie」が必要
「omniauth-facebook」が必要
Rack::Session::EncryptedCookie を使用、:secret => "fdstopitot9dasdsdasjm4kmt0èu54cmjff83d2'el.4j9c"
OmniAuth::Builder を使用する
プロバイダー: フェイスブック、「290594154312564」、「a26bcf9d7e254db82566f31c9d72c94e」
終わり
get "/" する
「持続 | セッション | /auth/facebook」
終わり
get "/persistent" do
response.set_cookie 'test', {:value=> "persistent", :max_age => 2592000.to_s}
リダイレクト「/」
終わり
get "/session" do
response.set_cookie 'テスト', {:値=> "セッション"}
リダイレクト「/」
終わり
get '/auth/:provider/callback' do
response.set_cookie 'test', {:value=> "facebook_callback"}
リダイレクト「/」
終わり
をクリックする/sessionか/persistent、それに応じて Cookie が変化するのを確認できます (Chrome では、F12 > Resources > Cookies > localhost で Cookie を確認できます)。
代わりに/auth/facebookCookie をクリックしても、まったく設定されません。
応答ヘッダーは問題ないようです (Chrome では、F12 > Network > header で http 応答ヘッダーを確認できます)。Chromeでのみテストしました。
HTTP/1.1 302 一時的に移動 X フレーム オプション: SAMEORIGIN 場所: http://localhost:4567/ X-XSS-保護: 1; モード=ブロック コンテンツ タイプ: text/html;charset=utf-8 コンテンツの長さ: 0 セット Cookie: test=facebook_callback セット Cookie: rack.session=X8U8kupLYzIurjMS4pSCQfF%2BzPpjQhJMqyMd84o8BQdQLwmhagL1UkZ4oi7%2F%0A9bEN%2B0FZDDUAeQD%2BRizczwvepQi%2FbcMwaAjpkFcXhiWuJPQ%3D%0A; パス=/ X-Content-Type-Options: nosniff 接続: キープアライブ サーバー: thin 1.5.1 コードネーム Straight Razor
どんな手掛かり?