2012-01-01 65 views
2

對於我的Android應用程序,我通常會通過向各種PHP腳本URL發送GET或POST參數來查詢數據庫,而這些參數反過來會吐出我在應用程序中解析的xml或json。Android - 如何使用登錄名和密碼正確查詢在線數據庫?

但是,如果我有一個數據庫中包含個人受保護的信息,用戶通常會使用登錄名/密碼進行訪問,那麼從應用程序查詢此信息的最佳方法是什麼?我上面的方法可以工作,但我可能需要發送用戶的登錄名/通行證作爲GET或POST參數...但這似乎是一個壞主意...

通常與Web應用程序,用戶日誌然後從那一點開始使用PHP會話。不知道如何用Android應用程序來處理這種類型的事情。

回答

1

我不認爲身份驗證是獨立的Android應用程序連接到Web服務。

您會複製您在android上的Web服務中使用的相同身份驗證機制。也就是說,如果您在Web服務(它傳輸明文密碼)中使用http身份驗證,則您將在android上覆制http身份驗證。如果您不想通過網絡傳遞明文憑證,您首先必須首先在Web服務中實施更安全的(https)。

對於我的項目,我使用POST請求將明文憑證傳遞給服務器。瀏覽器也傳輸明文密碼。在認證之後,服務發回一個令牌(數據庫中的一個用戶id),它必須包含在所有將來需要用戶登錄的請求中。

當將登錄ID &密碼存儲到首選項中時,我使用sha1先將其哈希。這確實意味着下一次,我的Web服務會傳遞散列的憑據,並且必須知道如何處理它。

這種機制很簡單,足以滿足我的需求。對於這個項目,我無法負擔得起類似https的東西。

+0

如果你存儲,並通過密碼作爲哈希..不會散列密碼是無用的?因爲無論如何你都不需要密碼,我的意思是。 – 2012-01-01 13:47:51

0

使用PHP腳本中間人總是比直接連接到數據庫更安全,因爲您可以添加自己的安全層。

在我的應用程序,這樣做,我編碼和解碼與一硬編碼鹽傳遞的數據,並使用生成的認證令牌需要用戶先登錄任何交易。

這真的取決於什麼儘管如此,你還是要專門做。

+0

我想你完全錯過了我的要求。我總是使用PHP腳本從數據庫中獲取數據。我問的是如何做同樣的事情,但使用登錄/密碼系統。 – 2012-01-02 01:18:53

+0

雖然有很多方法可以解決這個問題,但這取決於你想要做什麼。 例如,如果登錄憑證正確,您可以擁有第二個身份驗證PHP腳本,該腳本會生成會話,並返回生成的身份驗證令牌,該令牌可以由應用重新發送至任何需要登錄的PHP腳本。 – 2012-01-02 01:41:37

相關問題