2012-12-17 31 views
0

通常,在創建網站時,我將創建一個登錄表單,並在成功登錄時設置會話變量。 所以我可以檢查這個值,如果一個頁面可以顯示:if isset session .... echo content ....Android和網頁中的Android用戶認證

現在,我正在創建一個Android應用程序,它必須結合Android身份驗證和網站認證。 該應用的某些部分將被加載到Android組件中,但編輯配置文件信息將在加載到webview中的網頁中完成。

當啓動應用程序時,我會顯示一個登錄屏幕,當按下登錄按鈕時,會調用一個.php頁面來驗證來自mysql數據庫的登錄名和密碼,並將一個json結果傳回給我的應用程序 。 當爲正值時,顯示下一個屏幕。 如果此時用戶在菜單中選擇「編輯配置文件」,則在web視圖中加載網頁。

但我堅持如何在webview頁面中驗證用戶。 如何讓webview源頁面(例如,假設profile.php)知道用戶已正確登錄。

我發現了很多信息,但沒有關於如何將用戶傳遞到webview頁面並正確驗證它。

所以我想知道哪些是正確的方式來傳遞我的用戶到我的webview頁面? 我必須通過我的Android代碼以及如何在我的php代碼中處理這個問題?

我知道同步cookies,但我真的不獲得完整的解決方法: How to sync cookies with android webview?

+1

究竟是什麼問題?網站腳本(特別是服務器端腳本)在PC或移動設備上的反應方式相同... – Peon

+0

Offcourse,問題是。問題是我必須知道應用程序中的用戶以及在webview中加載的網頁。 當我使用應用程序級別表單登錄時,用戶在我的網頁中未知,因此我必須通過某種方式安全地傳遞用戶。 – randomizer

回答

0

我會去延長profile.php頁面讓它接受來自POSTusernamepassword的方式。這樣,您可以將Android應用程序內的用戶憑據發佈到您的profile.php頁面,該頁面將對用戶進行身份驗證並返回該用戶的個人資料頁面。在再次編輯並提交數據之後,發送用於驗證所需的用戶憑證以存儲正確用戶的配置文件數據。這樣它將更像Web服務。

我建議您始終創建至少一些簡單的Web API或Web服務,以便移動應用程序在數據之上操作,而不是在具體Web頁面上操作或操作。

+0

我明白了你的觀點,但是不是每次將用戶憑據傳遞到我的webview中所請求的網頁時都是矯枉過正的? – randomizer

+0

爲什麼會是一個矯枉過正的?就好像任何人想要登錄您的網頁一樣。它消除了可能的Cookie注入攻擊 - 假設我將收聽網絡並追蹤您的Cookie。然後,我可以將它們發送到您的網頁和voilá,我以其他人的身份登錄(除非您使用的是HTTPS)......無論如何,最好的解決方案是忘記webview並將配置文件頁作爲android中的窗體應用程序本身... – shadyyx

+0

在這種情況下,你認爲cookie注入攻擊究竟意味着什麼?因爲我會在哪裏設置Cookie? – randomizer