2011-06-04 76 views
14

我在使用jQuery Mobile(我們在Sencha Touch幾周看過,但jQuery Mobile更適合我們團隊的能力)開發移動Web應用程序的早期階段(預編碼)。我正在用PhoneGap包裝jQuery Mobile web應用程序來創建iPhone,iPod touch和iPad原生應用程序。我爲我們的Web應用程序使用Django,因此打算在服務器端執行相同的操作,爲移動應用程序和服務器之間的接口提供某種類型的JSON/Ajax/REST數據流。由於這是一款僅限移動設備的應用程序,因此我們應該可以訪問所有HTML5類型的內容。如何爲使用jQuery Mobile,PhoneGap和Django實現的移動Web應用程序實現首次登錄方案?

雖然我可能會拿出這個實現其他問題/疑問,這裏是我當前的問題/問題:

我需要讓第一次用戶打開應用程序設置應用程序,他們必須輸入用戶名和密碼才能進行身份驗證。隨後,用戶不需要進行認證,除非用戶點擊「設置」鏈接,使他們有一個頁面可以使用不同的帳戶或密碼進行認證。每次啓動時,應用程序仍應使用當前輸入的用戶名和密碼對服務器進行身份驗證,以確保該帳戶未被禁用或密碼已更改。

我對身份驗證方案很新穎。我該怎麼辦?

回答

4

我建議不要存儲在HTML5本地/網絡存儲。如果你的目標iOS的PhoneGap的,我會建議使用鑰匙串插件: http://blogs.nitobi.com/shazron/2010/11/06/ios-keychain-plugin-for-phonegap/

+0

感謝您的回答。 。 。如果這項工作正常,我會將其標記爲已接受! – 2011-07-09 02:30:23

+0

我們結束了使用你的插件和它的工作到目前爲止。 (我相信我的同事發送了一個味精問你一個問題,你有幫助的回答)。雖然我們認爲使用localStorage不會是世界末日,但考慮到應用程序的打包方式以及我們打算限制分發的方式,但是要使用keychain以正確的方式進行操作! – 2011-08-07 06:24:05

+0

(請注意,這僅適用於iOS,不適用於其他PhoneGap部署) – 2012-11-03 19:36:57

-1

嘗試HTTP Authentication with HTML Forms看看是否有幫助。

+0

感謝您的鏈接,但是僅基於這段摘錄:「這項技術適用於IE6和Firefox,但已知不適用於Opera和Safari,因此如果您關心這些瀏覽器,您可能需要再次考慮使用這(或花一些時間來研究爲什麼它在這些瀏覽器中失敗)。「我猜這不是我想爲我的手機應用程序追求的東西;另外,它沒有解決我的「首次登錄」登錄要求。 。 。希望我能得到更多的答案! :) – 2011-06-05 00:04:04

-1

它說要將一個PHP文件包含到HTML文件中,但我不確定PhoneGap是否適用於PHP。本週末我剛開始使用PhoneGap。

+0

你有一個「它」的鏈接(這是說這件事的事情)。我目前沒有計劃使用任何PHP(因爲我在服務器端使用python/django/wsgi) 。 – 2011-06-05 00:08:36

+0

我被告知將PHP文件存儲在您的服務器中,然後使用AJAX進行信息交易。 – 2011-06-05 23:21:20

4

雖然你不打算與Sencha Touch,但有一個很好的問題概述在HTTP Authentication

至於在初始登錄後存儲身份驗證信息,您可以嘗試使用local storage或cookie(儘管您可能需要使用PhoneGap to enable cookie storage)。 HTML5還提供了key-value local client storage。如果認證cookie工作,我相信這可以自動爲您處理;否則,您可以使用來自本地存儲的驗證數據(或encrypted storage)在Ajax調用中執行document.ready驗證檢查。

4

鑰匙鏈解決方案將在iOS設備上纔有效,所以如果這是你唯一的目標,你的罰款。

但是其他的呢?使用PhoneGap的一種浪費,但然後部署只有一個框架...

我知道localStorage是不安全的,但如果你意識到的侷限性有辦法讓少一點「顯而易見」。

這裏的jQuery.handleStorage plugin也處理AES加密......你可以看看源代碼,只實現你需要的部分(如果你不想使用整個插件,它也支持桌面瀏覽器! )。

PS:我沒有以任何方式該插件或作者

+0

您也可以使用更新,更靈活的版本,它不需要綁定a來形成https://github.com/jas-/ secStore.js – 2014-01-08 13:24:33

1

這是燃燒的問題,我有,當我開始移動開發與PhoneGap的一個附屬。讓我解釋我所做的事情。

當用戶嘗試登錄時,他/她輸入將通過Web服務調用發送到服務器端的用戶名和密碼。如果認證成功,則向用戶發放令牌並將其保存在服務器端以供將來通信。用戶將收到該令牌,並將其保存在本地存儲器或您喜歡的任何機制中。

現在爲了將來的通信使用令牌,令牌將與每個Web服務調用一起傳遞到服務器端,在服務器端服務器將驗證令牌是否是由服務器發出的有效令牌。根據您的要求(或未到期),您可以每72小時或48小時使令牌失效。一旦令牌失效,您將不得不登錄並獲取新的令牌。

希望這可以解決您的問題。

相關問題