9

私はいくつかの社会的側面を備えたPHP/MySQL eコマースサイトを開発しており、それをFacebookと統合することを検討しています。私はすでにネイティブユーザー登録/セッション処理システムを持っています。「いいね」ボタンなどのiframe「ソーシャルプラグイン」を含めることができました。しかし、私は本当にユーザーにネイティブ登録プロセスを介してFacebook経由でサイトに登録するオプションを提供したいと思います。

OAuthプロトコルを介してアクセストークンを取得し、最終的にユーザーIDを取得するという考えを理解しています。私の懸念は2つあります。

  1. この方法は安全ですか?これはeコマースサイトですが、クレジットカードやその他の機密データは保存していません。これをどのように利用できるかは考えられませんが、私はたった1人の頭です!

  2. 登録プロセス中に初期トークンを取得してユーザーIDを取得する方法を理解しています。しかし、リターン(セッション)ユーザーをどのように認識しますか?そのためにJavascriptSDKを実装する必要がありますか(避けたいもの)?または、セッションを既にネイティブに処理されているのと同じように処理しますが、必要に応じて、セッションCookieの通常のユーザーIDをFacebookユーザーIDに置き換えますか?

答えが明らかな場合はお詫び申し上げます。私はGoogleとFacebookのドキュメントを精査しましたが、私が見つけたリンクの半分は非推奨のFBConnect wiki記事へのリンクであり、新しいドキュメントは役に立ちますが、例はまばらです。何がまだサポートされているのか、何が新しいのか、そしてこれをどのように行うのか、私にはわかりません!

4

1 に答える 1

15
  1. はい、Oauthは非常に安全です。多くのアプリケーションがこれに依存しており、それを悪用する既知の方法はありません。

  2. これを行う1つの方法は、ユーザーのFacebook IDを保存して、ユーザーが戻ってきたときに、そのIDが既にレコードに存在していることを確認し、それがリピーターであることを確認できるようにすることです。それらのセッションは異なる可能性があるため(たとえば、前回の訪問以降に期限切れ)、アクセストークンを保存する必要はありません。ただし、FacebookのユーザーIDは常に同じです。

基本的にFacebookの登録/ログインを自分のサイトに統合する方法は、ユーザーテーブルにfacebook_id列を追加し、[Facebookに登録]ボタンを追加することです。ユーザーがクリックしてFacebookで認証し、セッションに戻ってユーザーが新しい場合は、登録ページにリダイレクトし、Facebookからのデータ(名前など)をできるだけ多くのフィールドに事前入力し、FacebookIDを次のように追加します。非表示の入力フィールド。したがって、登録すると、facebook_idがデータベースに入力されます。これは標準の登録ページと同じであるため、Facebook以外のユーザーとの唯一の違いは、facebook_idフィールドが空になることです。必要に応じて、Facebookユーザーのパスワードを要求することもできません。

ユーザーがログインするには、「Facebookでログイン」ボタンをクリックしてFacebookで認証するだけです。Facebookがセッションを提供したら、Facebookのセッションのユーザーとしてfacebook_idを持っているユーザーとしてログインします。セキュリティが心配なので、このセッションはあなたとFacebookだけが知っているアプリケーション秘密鍵で署名されているため、偽造できないことに注意してください。FacebookのSDKを使用する場合(これを使用する必要があります)、署名と署名の検証について心配する必要はありません。セッションから一貫した情報を読み取ることができるという事実は、FacebookのSDKがそれを検証したことを意味します。

このFacebookページは、登録をFacebookと統合するための優れたガイドです。

于 2010-07-25T19:02:24.377 に答える