2015-05-27 95 views
5

我在我的服務器上使用基於令牌的身份驗證機制。當用戶通過Android應用登錄時,服務器返回需要隨每個後續請求發送的令牌。我需要將該值存儲在設備上。由於令牌是一個簡單的字符串,我想我會使用SharedPreferences來保存該值。當應用程序在MyApplication extends Application內部啓動時,我查詢SharedPreferences這個令牌並將其作爲全局狀態保存在MyApplication中,以便每個活動在向服務器發送請求時都可以訪問它。使用`SharedPreferences`來存儲身份驗證令牌

這種方法是否可行?如果不是,它有什麼關鍵的缺點?如果這是一個壞主意,那麼另一種方法是什麼?

PS。這不是一個主觀的問題 - 我不是要求the best的方法,我正在驗證我的假設。

+1

你有沒有考慮過使用Android AccountManager?用setAuthToken和getAuthToken? – ataulm

+0

我沒有,謝謝你的提示。乍看之下,通過'SharedPreferences'來保存令牌似乎比實現更困難。但我可能會考慮未來 –

+0

是的,這絕對是一個頭痛的問題。只是「適當」的方法。 – ataulm

回答

4

這是相當安全的。用戶無法訪問SharedPreferences,除非他們已經對其設備進行了root化。如果您擔心安全性太高,可以在將令牌存儲在SharedPreferences之前對其進行加密。

2

如果您不想使用database或在文件上寫入令牌,它是一個有效的選項。沒有缺點,我能想到

1

如果設備生根,它有一個故障。如果設備是根源的,用戶可以從其設備的SharedPreferences中看到該令牌。我建議你使用Sugar here將數據存儲到數據庫/ SQLite中,以便更好地處理服務器。

相關問題