2015-11-05 43 views
0

我們正在開發一個android庫,它將與我們的後端進行通信。這個庫將分發給我們的客戶,允許他們的應用程序發送數據到我們的服務器。爲Android庫設置憑據的最佳方式

每個庫都應該以安全的方式與客戶端憑證(令牌等)進行通信。

哪裏可以存放該令牌的最佳位置?也許在清單?純文本文件在一個文件夾中?

我希望儘可能透明。客戶應該下載我的圖書館,下載憑證文件,並且都應該順利開始運行。

任何提示?

謝謝你這麼多

+0

可能重複的[Android:存儲用戶名和密碼?](http://stackoverflow.com/questions/1925486/android-storing-username-and-password) – Kassisdion

回答

1

從官方official documentation

處理憑證

一般情況下,我們建議您儘量降低請求用戶 憑據,以使網絡釣魚攻擊更顯眼的頻率,並且不太可能 成功。而是使用授權令牌並刷新它。

如有可能,用戶名和密碼不應存儲在 設備上。而應使用用戶提供的用戶名和密碼執行初始身份驗證,然後使用短暫的 特定於服務的授權令牌。

多個應用程序可以訪問的服務應該是使用AccountManager訪問的 。如果可能,請使用AccountManager 類來調用基於雲的服務,並且不要在設備上存儲密碼 。

使用AccountManager檢索帳戶之後,CREATOR在 之前傳入任何憑據,以便您不會無意中將 憑據傳遞給錯誤的應用程序。

如果憑證僅由您創建的應用程序使用,您可以使用checkSignature()驗證訪問AccountManager 的應用程序。或者,如果只有一個應用程序 使用憑證,則可以使用KeyStore進行存儲。

因此使用AccountManager似乎是存儲憑據的最佳選擇。

您也可以使用SharedPreference,但它有風險,可能導致在根源電話上訪問應用程序的首選項文件。

+0

經過對這個問題的一些研究,似乎是最好的方式來做到這一點。對於我們的客戶,我們將提供一個java類來存儲帳戶信息,我們的圖書館將使用它來通過客戶經理與後端進行交流。謝謝 :) – Isaac

相關問題