16

FacebookログインでiOSアプリを実装したいと思います。アプリのユーザーがソーシャル グラフを操作できるようにしたい (つまり、ストリームに投稿する)。そのためには、Facebook iOS SDK を使用します。
ユーザーが Facebook で既に認証されている場合、アプリケーションのサーバー側でいくつかのサービスも使用できるはずです。サーバー上のサービスに対してユーザーを確認するにはどうすればよいですか?

私の iOS アプリでは、iOS Facebook SDK を使用して (私の Facebook アプリケーションの) アクセス トークンをクエリできます。Facebook のユーザー ID と一緒にそのアクセス トークンをサーバーに送信する必要がありますか? サーバーはアクセス トークンが有効かどうかを確認できますか? または、iOS アプリだけが Facebook API と通信する必要がありますか? サーバーは私の Facebook ウォールに投稿できますか、それとも iOS アプリからのみ投稿する必要がありますか?

4

1 に答える 1

5

アップデート:

Facebook がセキュリティ ドキュメント/チェックリストを提供するようになりました: https://developers.facebook.com/docs/facebook-login/security/


少なくとも 2 つのオプションがあります。

  1. サーバーにアクセス トークンを送信し、そのトークンを使用して Facebook へのすべての要求を処理します (トークンが無効な場合はエラーが発生し、それをクライアントに渡します)。=> 安全だが (少し) 複雑。

  2. 間の通信を分離する

    • クライアント (iOS アプリ) と Facebook API と
    • クライアントとサーバー。

    アプリは、Facebook iOS SDK を介して Facebook API へのすべてのリクエストを処理し、結果として得られるデータ (あらゆる種類の Facebook ID など) をサーバーに通信します。このアプローチは、何らかの暗号化なしでは完全に安全ではありません。暗号化ハッシュ関数をサーバーに送信し、サーバーと iOS アプリに保存されているキーで検証できます。=> この方法は (少し) 実装が簡単ですが、リバース エンジニアリングによってキーが盗まれる可能性があるため、安全性は低くなります。さらに、アプリをアプリ ストアに送信するときに、[暗号化を使用しています] チェック マークをオンにする必要があります。

実際には、どの程度のリスクを負う意思があるか、どのような要求を行うか、どのようなサービスを提供しているかなどによって異なります。

サーバーはアクセス トークンが有効かどうかを確認できますか?

はい、こちらをご覧ください: iPhone アプリの Facebook アクセス トークン サーバー側検証

于 2012-07-16T19:37:52.543 に答える