4

Facebook 認証を使用して、クライアント ソフトウェア (iOS ネイティブ) が特定の FB ユーザーに代わって動作していることを証明しています。しかし、クライアントは、独自のログオンスキームを持つサーバーに対してこれをどのように証明できますか。FB access_token をサーバーに渡す必要があると思います。そのため、サーバーは Facebook にクエリを実行してユーザー ID を取得できますか?

または、Facebook に自分のアクセス資格情報 (既存の登録システムのユーザー名とパスワード) を保存させる方法はありますか? Facebook のログオン後、クライアントは Facebook からユーザー名とパスワードを取得し、それを使用してシステムにログオンしますか?

4

2 に答える 2

0

私がやったことは、サーバーがクライアントに Facebook アプリ要求を介してランダムなログオン パスワードを送信することです。つまり、iOS クライアントが fb_id をサーバーに送信し、サーバーがランダムなパスワードを生成して Facebook app_request として投稿します。クライアントは Facebook から app_request を取得し、パスワードを使用して自分自身をサーバーに認証します。

于 2012-09-14T00:31:06.043 に答える
0

OK、これが同じ問題に対する私の実用的な解決策です。

iOSApp を facebook で認証します。これによりaccess_tokenが得られ、ユーザーの Facebook ID ( fb_id ) を facebook から取得できます。

この認証を使用して、iOSApp (yourService) に関連するサービスへの要求を認証する必要があります。

リクエストとともにfb_idaccess_tokenを yourService に安全に (例: https で) 送信します。

次に、yourService はfb_idaccess_tokenを使用して、任意のソーシャル グラフ呼び出しを行います。次に例を示します。

https://graph.facebook.com/ fb_id ?field=name& access_token= access_token

access_tokenが無効であるか、 fb_idと一致しない場合、この呼び出しは適切なエラーを返すため、yourService は戻り値に基づいてリクエストを実行または拒否できます。

yourService と iOSApp は access_token のアクセス許可とステータスに従って FB グラフを読み取ったり変更したりできますが、iOSApp で既に認証されているユーザーを yourService で認証するだけの場合は、上記で十分です。

access_token の転送に関する FB ポリシーにはいくつかの問題がある可能性がありますが、転送に https を使用する限り、iOSApp と Facebook 間の交換と同じくらい安全です。

于 2012-09-12T22:52:34.593 に答える