0

しばらくの間、キャンバスアプリのFacebook認証に苦労してきました。私のアプローチは次のとおりです。

  1. ユーザーのセッションでアクセストークンを確認してください。
  2. ユーザーのFacebookCookieでアクセストークンを確認します。
  3. のパラメータを確認してくださいsigned_request

これらの3つのステップのいずれかでアクセストークンが見つかった場合:

  • /meリソース をリクエストするグラフAPIを呼び出します。
    • 通話が成功すると、ユーザーはログインします。
    • 呼び出しが失敗した場合(原因OAuthException)、ユーザーをFacebook OAuthエンドポイントにリダイレクトしてコードを取得し、そのコードを交換して新しいアクセストークンを取得することで、新しいアクセストークンをリクエストします。

セッション、Cookie、またはにアクセストークンが見つからない場合はsigned_request、ランディングページを表示します。

これは正しい手順ですか?signed_requestユーザーのアクセストークンの有効期限が切れている場合、パラメーターに存在しないことがよくあります。Facebookが新しいアクセストークンを要求するために承認した方法では、2つのユーザー向けリダイレクトとAPI交換が発生しますが、これは少し重いようです。

私が取り組んでいるセットアップは次のとおりです。

  • Rails v3.0.8
  • コアラジェムv1.2.1

私はこれらのガイドに従いました:

4

1 に答える 1

3

Omniauth の使用を検討しましたか? (https://github.com/intridea/omniauth) このすべてをまとめて、他のサイトにも簡単に拡張できます。

于 2012-02-08T08:06:20.577 に答える