2014-05-04 40 views
0

我有一個簡單的RESTful後端,我使用HTTP Basic over HTTPS進行身份驗證。它工作正常,但我正在尋找一個適當的解決方案來存儲憑據(用戶名+密碼)。Android:存儲HTTP基本密碼/用戶名

這裏有很多例子,大多數人建議使用Account Manager來存儲密碼。 AFAIK帳戶經理只存儲OAUTH(和類似的)帳戶並自動生成令牌等。但我怎樣才能使用它來存儲和獲取原始密碼?它甚至有可能嗎?

其他人建議將它存儲爲散列值,但這對我來說沒有意義(在一天結束時我需要訪問原始字符串)。

對不起,對於另一個How to use HTTP basic and android問題,但我目前無法找到合適的答案,並且將數據存儲在本地sqlite數據庫中,因爲明文似乎不合適。

+0

使用偏好。 –

回答

2

當然,您也可以使用Account Manager來存儲密碼。這是方法:

addAccountExplicitly (Account account, String password, Bundle userdata) 

,您可以使用此方法獲取密碼:

getPassword(Account account) 
3

我對你的項目/ usrmanagement風格有幾點想法。

  1. 爲什麼要將密碼保存在設備上?
  2. 爲什麼不使用身份驗證令牌
  3. 爲什麼不使用良好的舊的sharedPreferences進行工作。

我會建議這樣做。 首先註冊(不需要密碼和用戶名,它會創建一個用戶「Guest123」)或使用密碼(設備散列,從用戶的正常編輯文本中獲取)登錄到服務器。 然後檢查服務器上的正確性(如果有效),發回授權令牌和該令牌的生存時間。 將其存儲在sharedpreferences中。 如果此令牌無效(因爲時間結束,已在其他設備上登錄...),請向您的用戶發送包含您向服務器發出的每個請求的令牌。

有一些調整可以在這裏完成,但一開始它可以幫助你的項目。

相關問題