2012-08-31 64 views
0

Android的Facebook應用程序爲AccountManager提供了一個驗證器。 我試圖用方法getAuthToken獲取訪問令牌,但我不知道參數authTokenType的可能值是什麼。 該參數有什麼值可用?Android AccountManager getAuthToken中authTokenType的值是什麼?

謝謝。

+0

可能重複的問題(雖然沒有答案,但)http://stackoverflow.com/questions/4593061/how-to-retrieve-an-facebook-authtoken-from-the-accounts-saved-on -ANDroid – rds

回答

0

您不應該可以通過Facebook的身份驗證器獲取訪問令牌,因爲這會構成相當嚴重的安全漏洞。

相反,你應該使用這裏描述的單點登錄API:https://developers.facebook.com/docs/mobile/android/build/#enablesso

的入門有說明是非常好的。

如果你真的想要Facebook使用的authTokenType值,你可以通過紮根手機並將其從認證數據庫中讀出來獲取它。但我認爲這不會讓您閱讀任何訪問令牌,但這絕對不是用於合法商業目的的建議。

+0

爲什麼會是安全漏洞?只要您知道authTokenType(「com.google」爲「ah」),就可以使用'AccountManager' – rds

+0

一個月後,我不能再記住我想要的矢量。我認爲這與在沒有用戶輸入的情況下不加區分地向隨機第三方應用程序發佈訪問令牌有關。但是你是對的,Facebook可以將他們的應用程序設置爲使用authTokenType。成功使用它需要單獨安裝Facebook應用程序。移動android庫超越了這一點,允許用戶通過應用程序(如果已安裝)或網頁登錄。相比之下,任何Android設備都應該預裝谷歌的身份驗證器服務。 – Chris

+0

哦,我記得了! Facebook登錄會爲Facebook應用程序存儲一個專用身份驗證令牌,該令牌將無限期保留。這就是允許用戶長時間在設備上保持登錄Facebook的原因。如果您可以訪問該私人認證令牌,則可以對Facebook用戶的帳戶執行任何操作。這是一個明顯的漏洞。相反,合法的第三方應用程序應該使用Facebook發佈的身份驗證流程。 – Chris

0

僅供參考,反編譯Facebook應用程序APK顯示getAuthToken方法的服務器部分未實現。

您需要使用Facebook SDK。

相關問題