2012-08-13 84 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