2011-04-12 16 views
0

私は自分のFacebookアカウントを使用してユーザーに自分のウェブサイトにログインさせようとしています。私はFacebookの開発者(http://developers.facebook.com/docs/)ページからプロセスに関連するいくつかの情報を読むことを試みました - プロセスとロジックの並べ替えは意味をなさないが、大きな画像に関してはまだ失われています。Facebook Connect for the website - データベース接続とロジック

既存のデータベースのデータベースとその属性への「Facebook接続」リンクはどのようにしてリンクされますか?登録ユーザーであるJohn Walkerというユーザーがいるとします(ログイン:jwalkerパス:1234口座残高:$ 10)。彼がウェブサイトに来て、Facebookのログイン情報を使用してログインしようとすると、どのように彼に指示するのかは分かりますか?言い換えれば、Facebookはそれが正しいJohn Walkerであることをどのようにして知っているのでしょうか?彼は彼のユーザーページに送られるべきですか?

この質問が些細なものであれば申し訳ありませんが、自分では思うことができません。事前にあなたの助けをありがとう!

ザカリー

答えて

0

まあザカリー、あなたは接続するFacebookについて少し誤解を持っています。ユーザーがサイトに配置されているfacebook connectボタンをクリックすると、facebookはデータベースにアクセスしてユーザーを認証しません。彼は自分のデータベースで、現在のユーザーがFacebookアカウントを持っているかどうかを認証します...もしアカウントを持っているなら、facebookにログオンして、その特定のユーザーのアクセストークンを発行します。それでは、あなたのシステムにそのユーザーをログインさせ、彼の情報をデータベースに入れる責任があります。私は詳細を説明し、次のコードを参照させてください。

 
<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({appId: "Your APP ID", 
      status: true, 
      cookie: true, 
      xfbml: true}); 

    FB.getLoginStatus(function(response) { 
     if (response.session) { 
     // This is the place where you get control when user is login to facebook 
       // At this point you can redirect the user to a page where you can put the facebook returned information to database and login him into your system 

     } else { 

     } 
    }); 
    FB.Event.subscribe("auth.login", function(response) { 

    window.location.reload(); 
     }); 
FB.Event.subscribe("auth.logout", function(response) { 


    self.location.href="http://www.iranibash.com/logout.php"; 
     }); 
    }; 
    (function() { 
    var e = document.createElement("script"); 
    e.src = document.location.protocol + "//connect.facebook.net/en_US/all.js"; 
    e.async = true; 
    document.getElementById("fb-root").appendChild(e); 
    }()); 
    </script> 

これで、成功したログイン後にfacebookが返すユーザーに関する情報を使用できます。その情報を$ cookieに入れることができます。私はあなたがこの情報から理解できると思いますか?