2013-02-04 66 views
5

我的Android應用程序中唯一的登錄選項是通過Facebook登錄。我想使用Web服務(ASMX),並且在每個請求上,服務器必須驗證用戶是通過Facebook進行身份驗證的。我發現了一個解決方案:Android應用程序和Web服務之間的身份驗證+ Facebook登錄

1)從Android應用

2驗證用戶對Facebook)的獲取FB驗證令牌的Android應用

3)轉發從Android的認證令牌& Facebook的UID到網絡服務器

4)在網絡服務器上,使用提交的令牌進行Facebook API調用 。

如果從Web服務器的Facebook API調用返回有效的認證, 和用戶ID等於提交的Android應用程序之一, 服務器可以信任的ID(&可以肯定的是,Android的 認證實)

Link

我的問題是:

  1. 每次向Web服務發送請求時,是否都必須發送Facebook用戶標識和令牌?或者使用cookie(如果可能的話)
  2. 我是否必須將Web服務註冊爲Facebook應用程序?我發現這個: C# Facebook SDK Getting Started

回答

3

您的解決方案看起來不錯。實際上,Android客戶端唯一需要傳遞給Web服務的是身份驗證令牌。使用該身份驗證令牌,您可以執行任何操作,當然還可以授予用戶權限。所以,Android客戶端必須詢問用戶您的Web服務將使用的權限。

爲了您的兩個問題:

  1. 號應該只發送FB身份驗證令牌一次。在Web服務器可以從FB中檢索用戶的信息後,可以將這些信息保存到數據庫(在簡單的用戶模型中),然後使用您自己的認證引擎(Cookie,API令牌等)創建會話。

  2. 不需要將Web服務註冊爲FB應用程序。正如我上面提到的,使用FB身份驗證令牌可以做很多事情。您還可以看到Facebook Graph API

+0

謝謝!祝賀2k :) – necromancer

相關問題