2012-07-26 52 views
2

我注意到Windows桌面Spotify應用程序要求我在登錄屏幕中輸入我的Facebook用戶名和密碼。我想知道幕後發生了什麼。Spotify Windows桌面應用程序如何驗證用戶?

當我在瀏覽器中更改我的fb密碼時,我必須在Spotify桌面應用程序登錄屏幕中使用新密碼。甚至有些情況下,Spotify桌面應用程序向我展示了一個必須爲Spotify授予權限的fb彈出窗口。

我知道Spotify使用嵌入式Chromium瀏覽器引擎來完成所有繁重工作。但是這不是反對Facebook的TOS這樣做嗎?

我的意思是,Spotify是否將我的用戶名和密碼發佈到facebook login.php並攔截結果頁以獲取我的cookie?是否有文件記錄的方式來以正確的方式代表用戶處理Facebook登錄?

回答

2

不,他們使用的是過時且不適用REST API的方法叫auth.loginhttps://developers.facebook.com/docs/reference/rest/auth.login/

很顯然,我可以在自己的應用程序中使用這種不攔你,但鑑於API多大,以及如何充分休息API現在已被棄用,依靠它不是個好主意。相反,對於Windows桌面應用程序,我相信微軟提供了一個Facebook C#SDK,它將包含用於身份驗證的理想方法。我更熟悉爲地鐵應用程序提供的名爲Web Authentication Broker的新方法。

這幾乎只是加載應用程序內的Web框架,讓用戶登錄到Facebook,然後顯示權限對話框(如果需要)。從那裏開始,應用程序可以存儲用戶的UID,並且可能是他們在驗證時收到的長期存取的令牌。這樣,他們只需要讓用戶每60天再次登錄一次。

有被Facebook所提供other device-based authentication methods,但大多數仍然在私人測試,當前推薦的桌面應用的唯一一個在this page標題的Windows,OS X和Linux的本機應用程序下(規定在底部的頁面)。

更新2013年12月:因爲自從我寫了這個答案,我想指出幾個新增加了Facebook登錄文檔已顯著改變:

  • Manually Building a Login Flow詳細介紹的步驟,桌面應用程序可以採取登錄用戶。這裏有什麼新東西是Windows 8應用程序現在可以在Login對話框的redirect_uri中使用它們的深度鏈接ID,這意味着它可以在完成或取消時從多個登錄對話框中多次返回到他們的應用程序。與以前的WebView設置相比,這是一個改進,因爲用戶的默認瀏覽器可能會讓他們已經登錄Facebook。
  • Login for Windows Phone是Windows Phone 8應用程序使用的特殊指南。
+0

謝謝!實際上,我們的桌面應用也有嵌入式Chromium。但是,如果我在用戶的桌面應用程序中向用戶顯示「使用Facebook登錄」按鈕,則用戶體驗有點奇怪: – 2012-07-27 11:45:51

+1

因爲在開始時沒有cookie,用戶將被重定向到全功能的fb登錄屏幕。在那裏他不僅可以登錄,而且可以註冊並最終開始瀏覽網頁。所以登錄體驗被嚴重破壞。有沒有想過如何讓用戶登錄和驗證桌面應用程序沒有這樣一個破碎的經歷? – 2012-07-27 11:52:15

相關問題