2016-02-28 47 views
0

我有一個Android應用程序,它使用雲端點備份谷歌appengine上的數據。使用Android客戶端的Appengine端點身份驗證,無需使用Google帳戶

我不使用谷歌帳戶的用戶的設備唯一識別用戶。我使用不同的用戶名(用戶在註冊時首先選擇)來識別用戶。

我試圖使用OAuth驗證來驗證誰使端點調用API的用戶,但似乎主叫端API調用時,我必須使用谷歌帳戶在Android設備上,用於OAuth認證工作。

所以我決定作爲參數添加用戶名和密碼所需的所有認證端點API調用。當用戶註冊或登錄時,我將用戶名和密碼存儲爲SharedPreference。然後,我使用此用戶名和密碼進行身份驗證所需的API調用。

是否有這種做法的任何安全問題?如果是這樣,有沒有更好的方法?

回答

0

的一個問題,我看到安全明智,那就是:

我決定把用戶名和密碼作爲參數添加到所有的 認證所需的端點API調用

如果你這樣做,那麼用戶名和密碼將成爲URL請求的一部分。取而代之的是,讓你的API方法(S)POST和創建使用一個簡單的POJO有usernamepassword性能與getter和setter方法包裝類和傳遞類作爲參數。

僅供參考您只能將一個類作爲參數傳遞到Cloud Endpoints API方法中,因此如果您有多個要傳入的類/實體,則必須創建另一個只包含那些類/實體的包裝類屬性與getter/setters。

此外,還要確保你散列/加密用戶密碼在創建時,這樣你就不會繞過明文密碼。如果你是谷歌,那麼在Java中如何做到這一點有很多信息。

相關問題