2013-08-23 26 views
0

也許我正在做這個錯誤的方式,但我有一個網站,允許Facebook登錄。如何在收到response.status ==='connected'後驗證Facebook用戶?

  1. 如果用戶已經註冊在我的網站
  2. 並登錄到Facebook的訪問,但在登錄頁面我檢查他們的Facebook登錄狀態,並得到response.status === 'connected' via-時沒有登錄到我的網站
  3. FB.Event.subscribe('auth.authResponseChange', function (response) 
    { 
        if (response.status === 'connected') 
        { 
         var s = JSON.stringify(response.authResponse); 
         LogMeIn(s, function(response) 
         { 
          HandleAjaxError(response, function(msg) 
          { 
           window.location = '/_/'; 
          }); 
         }); 
        } 
    } 
    
  4. 那麼我想他們authResponse對象傳遞到服務器,並確認該用戶ID與此令牌工作之前,我在記錄他們爲這個用戶

我已經閱讀簡單地搶的JSON內容 -

https://graph.facebook.com/ {用戶ID}的access_token = {的accessToken}

,如果它不返回一個錯誤,那麼它很好!但是當測試這個方法時,我注意到相同的access_token適用於兩個不同的用戶ID(意味着它沒有爲我的計算機上未登錄的用戶ID返回錯誤)。相反,它返回的名稱,位置等的Facebook用戶對象。

這真的讓我感到驚訝,因爲我期待access_tokenwork only with a single user id。

爲了防止某人在繼續執行腳本之前更改用戶標識,我需要通過服務器端進行身份驗證。什麼是完成這個的方法?

證明,去這些鏈接查看個人資料信息

我的簡介 -

https://graph.facebook.com/1233822590?access_token=CAACCBJJZBgjABAOGmvmsou8gMYGulLHTgAr5ZCHZAU7pKEp0cMAeX8r4qHLpiVuZCOT1v0ulMZAxX5YfLJkcZBr9l6qJQoPxWS5Fs5ndohDnH6ZAPPfZCZCTQtwWgAZAg6I1PAOIpdtCc0OUaMmBZAvGiMm9gQhmNXRbocZD

其它具有相同access_token-

https://graph.facebook.com/100000116781159?access_token=CAACCBJJZBgjABAOGmvmsou8gMYGulLHTgAr5ZCHZAU7pKEp0cMAeX8r4qHLpiVuZCOT1v0ulMZAxX5YfLJkcZBr9l6qJQoPxWS5Fs5ndohDnH6ZAPPfZCZCTQtwWgAZAg6I1PAOIpdtCc0OUaMmBZAvGiMm9gQhmNXRbocZD

用戶ID 210

回答

0

沒什麼好驚訝的。您可以使用facebook的任何用戶的訪問令牌來獲取facebook的任何用戶的基本信息。因此,這不是驗證令牌的好方法。此外,不需要確認令牌部分。

如果你想通過服務器端的授權通過。 this鏈接