3

ユーザーを認証するために Facebook との統合を行っており、Ruby on Rails アプリケーションを使用しています。私は、オンラインで利用可能なチュートリアルといくつかのSO投稿を行ってきました。

私はこれを行ういくつかの方法に出くわしましたが、それらのほとんどは、昨年のこの投稿で説明されていることについて話しています。http://railscasts.com/episodes/360-facebook-authentication?view=asciicast

私の質問は次のとおりです。

  1. クライアント側の統合だけでできますか?

  2. なぜサーバー側の統合が必要なのですか?

  3. 1つを選択することの長所と短所は何ですか?

  4. 両方を行う利点は何ですか?

  5. サーバー側の統合を行うための最良の方法は何ですか (どの宝石/宝石)?

4

2 に答える 2

4

クライアント側の統合だけでできますか?

  • クライアント側の統合により、facebook のようなボタン ( https://developers.facebook.com/docs/reference/plugins/like/ ) のような FB JavaScript ウィジェットを使用して参照していると仮定しています。あなたは間違いなくこれを行うことができ、ユーザーがアプリに対して「認証」する必要はまったくありません (つまり、アプリに許可を与えるなどの oAuth プロセスを実行します)。代わりに、Facebook のログインページにユーザーをポップするだけです。壁やいいねなどに直接投稿します。

なぜサーバー側の統合が必要なのですか?

  • 最初の質問への回答の続きとして、サーバー側で他のことを実行できるように、実際にユーザーに oAuth プロセスを実行してもらいたい場合があります。これには、メール/写真、国などの情報を取得することが含まれる場合があります (要求する権限によって異なります)。あなたのユーザーの。または、特定の機能の実装に関係している可能性があります。たとえば、友達の友達を引っ張ったり、現在アプリを使用しているユーザーを確認したりできます。

1つを選択することの長所と短所は何ですか?

  • どちらも FB との統合に適した方法ですが、JS ウィジェットを使用することは、実際にはログイン統合ではなく、何らかのアクションを実行するための FB へのリダイレクトにすぎません。誰かがあなたのサイトで「facebook でサインイン」できるようにしたい場合は、サーバー側の統合 (つまり、oAuth) を使用する必要があります。
  • これは、oAuth プロセスの後、サーバー側データベース内の実際の「ユーザー」オブジェクトに関連付けられた FB からのユーザーを表す「認証」(つまり、トークン) を持つことを意味します。
  • 上記で概説したように、これは多くの理由で役立ちます。複雑なことをする必要はなく、誰かが何かを「いいね」したり、「壁に共有」できるようにしたい場合は、サーバー側の統合は必要ないかもしれませんが、前述のように、「サインインが必要な場合」 facebook" は間違いなく oAuth であり、サーバー側の統合が必要になります。

両方を行う利点は何ですか?

  • ここで言いたいことはたくさんありますが、答えは上記を参照してください。より具体的な質問がある場合は、さらに詳しく説明することができます。

サーバー側の統合を行うための最良の方法は何ですか (どの宝石/宝石)?

于 2013-09-12T07:58:51.347 に答える
1

質問は少しあいまいです。統合が意味するのが認証である場合、答えは唯一の違いは、クライアント側のバージョンではJavaScriptが機能する必要があるのに対し、サーバー側のバージョンでは必要ないことです(実装はわずかに異なります)。

私の意見では、Rails であらゆる種類の Facebook 作業を行うための最良の方法は、(Omniauth を使用する) Koala gemです。それは本当によく文書化されており、ひどい FB API の操作をほとんど耐えられるものにしています。

繰り返しますが、あなたが尋ねたのが認証である場合、違いはありません。Koala/Omniauth を使用すると、サーバー側のリダイレクト ベースのログインを使用する場合と同様に、JS SDK で生成された Cookie からユーザー情報を抽出できます。

于 2013-09-12T08:27:03.803 に答える