2015-10-07 29 views
0

我正在開發一個基於Facebook的移動應用程序。應用程序通過Facebook登錄創建本地用戶。下面是應用步驟。如何驗證兩個在Facebook上的朋友是誰

  1. 登錄facebook
  2. 後端服務創建本地用戶
  3. 找到誰使用的應用程序的朋友通過Facebook的SDK
  4. 投票你的朋友

注:

  1. 我不想讓我的數據庫系統上的用戶朋友
  2. 我用的智威湯遜

問題:

我必須驗證身份驗證的用戶和用戶投票是在Facebook上的朋友。用戶必須由其朋友投票。

我發現了一對解決方案,但他們也有漏洞。

例如;

我認證,我通過facebook sdk獲取所有我的朋友。請求是爲這樣的用戶投票: /vote/user_id/vote_id 後端服務檢查並驗證jwt令牌並將其用戶標識爲user_id的用戶投票爲authenticated user的vote_id。

table structure 

from_user_id,vote_id,to_user_id 

所以問題是,當一個用戶進行身份驗證,可以從應用程序投票用戶之外採取JWT令牌無論是它的朋友還是沒有。這對我們來說是一個很大的問題。所以我想知道如何驗證兩個用戶是沒有發送請求Facebook的朋友。或者如何設計構架以避免這種情況。

回答

0

這可以簡單地進行使用當前應用程序用戶的訪問令牌發出請求到

/me/friends/{id_of_friend} 

。如果他們是朋友,你會得到一個data結構,其中包含朋友的ID和名稱 - 如果他們不是朋友,data將是一個空陣列。

這當然要求兩個用戶都已授予您的應用user_friends權限。

+0

感謝您的回答,但我的意思是有一種方法來驗證兩個用戶是它的朋友,而無需去facebook服務。 – RockOnGom

+0

你是什麼意思,沒有提出API請求?就像你說的,你不想將信息存儲在你的終端 - 所以沒有API請求,你會期望它來自哪裏?...? – CBroe

+0

是的,沒有提出api請求。如果我知道答案,我沒有問它。問題不在於驗證兩個用戶關係,而是關於客戶端服務器體系結構。我試圖找到一個解決方案,但我沒有。所以我不知道它到底在哪裏。 – RockOnGom

相關問題