2017-09-15 54 views
0

我有一個網站使用ASP.NET核心,它使用MS身份和來自Facebook的外部登錄。如何實現從Xamarin身份後端的外部登錄

我有一個Xamarin應用程序,使用Xamarin.Auth通過登錄/密碼登錄到此後端。我想知道哪個是允許從應用程序外部登錄到Facebook的最佳方式?

  • 我應該爲Android創建一個單獨的Facebook應用程序還是應該使用相同的網站?
  • 流量是多少? 我想到的是這樣的:
    • 使用Facebook SDK登錄
    • 從服務器端傳遞令牌服務器
    • 檢查電子郵件存在,或者FB用戶ID存在
      • 如果是檢查使用Facebook的應用程序是否被註冊,如果是登錄
      • 如果沒有創建一個帳戶

但直到現在我還沒有存儲用戶的Facebook ID(只有電子郵件,用戶也可以修改)。

回答

0

Xamarin.Auth是客戶端庫,目前沒有服務器端實現。

因此,您的服務器是受保護資源,Facebook將是授權服務器。獲得令牌後(access_tokenrefresh_token),您將嘗試訪問保護資源,將access_token作爲憑證。受保護的資源將執行令牌內省(這可能是單獨的服務 - 服務器),它將解碼令牌,查找用戶名(郵件)並檢查令牌的有效期。 這在草稿(RFC)中沒有指定,因此請檢查FB如何執行令牌內省。

更多信息幾個環節:

How to validate an OAuth 2.0 access token for a resource server?

http://blog.api-security.org/2014/10/oauth-20-token-introspection-profile.html

https://www.quora.com/In-OAuth-2-0-how-do-resource-servers-assert-a-token-issued-by-an-authorization-server

https://connect2id.com/products/server/docs/api/token-introspection

https://leastprivilege.com/2015/12/27/oauth-2-0-token-introspection-middleware-for-asp-net-5/