2012-04-25 25 views
5

ウェブサイト(PHP)、API(PHP)、ネイティブiPhoneアプリを構築しています。ユーザーが自分のFacebookアカウントでログインして、レビュー/投稿写真をウェブサイトやiPhoneアプリからサーバー/データベースにアップロードできるようにします。これにより、完全なユーザー登録システムを作成する時間も節約できます。ウェブサイト、API、iPhoneアプリでユーザーがFacebook経由でログインできるようにする

私はこの種の解決策のために一様なアーキテクチャを作成する方法を理解しようとしています。私は、次のことを考えている:

登録:

  • 私のユーザーを含むデータベーステーブルを作成します(表は、これらのフィールドがあります:ID、facebook_uid、ファーストネーム、姓)を
  • iPhoneアプリログインシナリオ:ユーザーはFacebook経由でログインします。私のアプリの許可を与える許可を押す。 access_token(自分の電話に保存されている)でAppに戻ります。その後、自分のAPIを呼び出して、ユーザーに(まだデータベースに登録されていない場合)facebook_uid、firstname、lastnameという情報を登録します。
  • ウェブサイトのログインシナリオ:Facebook経由のユーザーログイン;私のように構成リターンURLにリダイレクトし、これらの値を持つユーザー(まだデータベース内にある場合)facebook_uidを登録し、製品レビュー

    • iPhoneアプリ投稿

  • 、姓と名:電話をかけるを私のAPIに、次のパラメータ入力:review_text、facebook access_token。私のAPIは、facebook_uidを取得するためにfacebookへのAPIコールをサーバー側に行います。 facebook_uidを取得すると、このFacebookユーザーのレビュー記録をデータベースに挿入します。 (Facecbook access_tokenを送るのではなく、facebook_uidの値を自分のAPIに直接送ることができたかもしれませんが、facebook_uidを知っていれば誰でも他のユーザーの行動についてレビューを挿入することができるため、安全性が低いかもしれません)

  • ウェブサイト:Facebook Connect PHPライブラリの助けを借りてFBログインセッションが利用できるので、facebook_uidセッションを読むことで、レビューをサーバー側に直接挿入することができます。

これは、あなた自身のプラットフォームのログインとしてFacebookを使用する正しい、安全な方法ですか?または、これを単純化するために使用できる他のPHPモジュール/ライブラリがありますか?

答えて

0

のFacebookページでも、これは

iPhone、特定のFacebookのログインのためにここで私は似たにしています https://developers.facebook.com/docs/mobile/ios/build/#implementsso

+0

Facebook APIとライブラリ(私はPHPアプリケーションとiPhoneアプリで使用しています)を知っています。ここでのことは、私自身のAPIを構築して自分のエンティティ/製品をデータベースに公開することです。私自身のAPIは、製品のレビューを書いたり、製品写真をGoogleのサーバーにアップロードするなどの機能を提供します。したがって、私はFacebookのユーザーを認証する必要があります。 –

+0

ああ、私は参照してください。それは問題ではありません。ログインAPIはユーザーをログインさせます。そこからユーザー名などをAPIに渡すことができます。あなたの質問が正しいと思うのは、FacebookのAPIがログインすることです。 – Jamesp1989

+0

はい、これは安全な方法です。新しいユーザーを自分のユーザーのデータベーステーブルに追加するために、FacebookのACCESS_TOKENをHTTPS経由の自分のAPIに渡します。また、自分のAPIを使ってレビューを投稿したり写真をアップロードしたりすると、ACCESS_TOKENを再度通過して自分のAPIが解決できるようになりました。それはfacebook_uidです。 –

0

をご覧ください実装する方法についてのチュートリアルが含まれてい http://developers.facebook.com/docs/guides/web/

ここで、既存のAPIを持っていますシナリオ。 access_tokenを電話にかけることは良いアイデアのように思えます。あなたのAPIを使ってこれを渡して、自分のデータベース上のユーザーを確認することも良い考えです。

Facebook APIを常にpingしているのとは対照的に、access_tokenを暗号化して自分のデータベースに保存し、それをチェックするだけで安全ではないでしょうか?:

  1. Facebook経由でログインし、FacebookのUIDとaccess_tokenを取得します。
  2. UIDおよび/またはaccess_tokenをデータベースにmd5/shaで暗号化して保存します。
  3. APIがコールするたびに、access_tokenを渡し、コールを確認するために格納されているものと照合しますか?
関連する問題