Facebook Connect for the website - 数据库连接和逻辑

时间:2011-04-12 04:08:00

标签: facebook authentication

我想让用户使用他们的Facebook帐户登录我的网站。我试过从Facebook开发者那里阅读一些与该过程相关的信息(http://developers.facebook.com/docs/)页面 - 虽然这个过程和逻辑有道理,但我仍然对大局感到迷茫。 / p>

“Facebook连接”如何链接到我现有的用户数据库及其属性。假设有一个名为John Walker的用户,他是一个注册用户(登录:jwalker传递:1234账户余额:10美元)。当他来到网站,并尝试使用Facebook登录登录时,它怎么知道在哪里指导他?换句话说,Facebook将如何知道它是正确的John Walker,他应该被发送到他的用户页面?

如果这个问题很简单,我很抱歉,但我自己也想不到。感谢您的帮助!

扎卡里

1 个答案:

答案 0 :(得分:0)

Zachary,你对facebook connect有点误解。当用户点击您网站上的Facebook连接按钮时,Facebook不会访问您的数据库来验证用户身份。他在他的数据库中验证用户当前用户是否拥有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中获取该信息。我想你可以从这些信息中理解吗?