はじめに:お誕生日おめでとうございます。Railsでビルドし、fb_graphと呼ばれるrubyAPIラッパーを使用しています。fb_graphの作成者は、実用的なサンプルアプリケーションfb_graph_sampleを丁寧に提供してくれました。
それをいじってみたところ、セッション/Cookieがどのように機能するのかわかりません。たとえば、次のコードを確認してください。
def require_authentication
authenticate Facebook.find_by_id(session[:current_user])
rescue Unauthorized => e
redirect_to root_url and return false
end
def authenticate(user)
raise Unauthorized unless user
session[:current_user] = user.id
end
session [:current_user]はどこから来たのですか?
config / initializers / session_store.rbの下で、
FbGraphSample::Application.config.session_store :cookie_store, :key => '_fb_graph_sample_session'
そこで、Chromeインスペクターツールを使用してデプロイしているローカルホストのCookieを確認します。値、ドメイン、パス、有効期限、サイズ、httpなどの_fb_graph_sample_sessionが表示されます...
session [:current_user]がどのように発生するのかまだわかりませんか?development.sqlite3ファイルを見ると、Facebookモデルのデータは1つだけです。idは1なので、[:current_user]は1であり、コードは「authenticate Facebook.find_by_id(1)」を呼び出していると思います。
session [:current_user]が1に変換される方法を誰かが説明できますか?サインインアウトに関するrailstutorial.orgの章を読みました。これにより、セッションコントローラーが作成されますが、fb_graph_sampleアプリにセッションコントローラーがありません。
ありがとう、