2012-08-13 98 views
1

我有一个标准的PHP登录系统,没有什么特别的网站,而是希望让人们使用Facebook登录和/或注册,但没有成功。如何使用Facebook来登陆/注册到我的网站

有这么多的选择,我不知道该用哪一个。我确信我可以找到合适的人,但我实际上不知道从哪里开始。

我已经成功地注册了一个应用程序,并得到了一个应用程序键和秘密密钥。然后,我尝试了Facebook登录按钮,如下所示:https://developers.facebook.com/docs/guides/web/#login - 但由于我不确定如何存储数据,因此看起来并不理想。

然后我检查了图形API,我认为这就是我所需要的。我有代码能够给我一个access_token,然后我可以将它存储在一个mySQL数据库中。然后我可以访问https://graph.facebook.com/me?access_token=HOOP_DE_DOOT_DE_FRUIT并获得一个很大的JSON列表,这显然是相对于我所要求的权限。

access_token方法是否是正确的方法?当然,一旦我拥有了它,我可以在数据库中存储令牌,将其与电子邮件地址一起存储,然后访问用户的信息,但我不确定这对登录是否安全,尽管它会加速注册因为我可以预先填写所有的字段。

我应该如何使用的access_token实际登录用户,假设我能顺利拿到它,它与相应的电子邮件地址存储在MySQL数据库?

回答

1

如果你想使用你想获得他们的用户ID,您可以用PHP这样做你的数据库登录用户:

require_once(BASE_PATH . "facebook.php"); 
$facebook = new Facebook(array('appId'=>'appId', 
         'secret'=>'secret', 
         'cookie'=>false)); 
$fbid = $facebook->getUser(); 

或者您也可以在登录他们的前面像这样结束:

FB.login(function(response){ 
     //Log them in 
      if(response.authResponse){ 
      //They're now logged in 
       var uid = response.authResponse.userID; 
      } 
} 

然后使用ajax调用或其他东西将id传回到后端。

+0

即使我有一个用户(即我)登录到Facebook和允许应用connct,所有我曾经从$ facebook->的getUser()获得;是0(或NULL,无论哪一个)。 但是,我可以通过access_key登录用户,让他们授予我需要的额外权限,以获得$ facebook-> loginUrl; – 2012-08-13 22:57:37

+0

@AndreasChristodoulou这很奇怪,0表示没有用户登录。你只是使用PHP还是你也有权访问前端使用JavaScript?我有更多的JavaScript API经验。 – jaimerump 2012-08-13 23:00:47

+0

我可以或者两者兼有 - 我可以完全掌控网站和两种语言的使用体验。 – 2012-08-13 23:13:51