2015-04-06 91 views
1

我有麻煩我的包裹圍繞以下頭:Android的Facebook登錄和服務器端認證

  • Android應用程序與Facebook登錄
  • 的NodeJS(Hapi.js)服務器後端

在過去,我使用一個簡單的用戶名密碼系統,這使得創建服務器端會話和驗證服務器請求(例如:獲得距離我50公里內的所有用戶)非常容易。我刪除了該系統,並選擇在Android應用程序中進行Facebook登錄,因爲這有助於減少一些負載(例如:我們不需要存儲我們自己的圖像...)。

問題是我不知道如何處理服務器端身份驗證。所有的GET,POST,...只能由使用Facebook集成功能登錄Android應用程序的用戶完成。

我發現下面的主題已經#2:

我只是想對此事進行了更新的意見,是放心大膽地只發送令牌我的節點服務器並使用它進行Facebook API調用以檢查有效的身份驗證?

如果有更好的方法,請分享!提前致謝。

回答

1

是的,它足夠安全地將Access Token發送到您的服務器,並向Facebook進行API調用以驗證該訪問令牌。 AFIK這是最好的方法。

+0

什麼如果一個「黑客」發送他自己的Facebook令牌到我的服務器,如何保證它來自我的Android應用程序,沒有別的? – Jdruwe 2015-04-06 10:58:24

+0

我們將使用'httpGetRequest.setHeader(「Authorization」,accessToken); \t \t httpGetRequest.setHeader(「X-MajorVersion」,「1」); \t \t httpGetRequest.setHeader(「X-MinorVersion」,「0」); \t \t httpGetRequest.setHeader(「X-RevisionVersion」,「7」); \t \t httpGetRequest.setHeader(「X-Platform」,「ANDROID」); \t \t httpGetRequest.setHeader(「Accept」,「application/json」); \t \t httpGetRequest.setHeader(「Content-type」,「application/json」); \t \t httpGetRequest.setHeader(「Accept-Encoding」,「gzip」);' 因此黑客可能會獲取所有這些數據,即使他得到了,他也需要從Facebook進行身份驗證 – 2015-04-06 11:04:22

+0

如果他反向工程師應用程序和是否發現這段代碼不能只使用他在我的應用之外生成的令牌? 「如果您只是爲了防禦一個稍微複雜一點的軟件工程師(他們可以對您的應用程序進行逆向工程),那麼這還不夠,這位工程師可以從您的應用程序中提取一個私鑰並用它來簽署他的請求應用程序 - 遠程證明「他不能只在你的示例中設置頭文件,並使用在應用程序外部生成的令牌進行成功的請求? – Jdruwe 2015-04-06 11:11:16