2012-08-13 61 views
1

我正在構建單頁面應用程序,請閱讀該登錄頁面不應該在同一頁面上。我是否應該將登錄信息作爲單獨的html頁面進行登錄,或者我也可以在同一頁面登錄。單頁面登錄頁面應用程序

如果我以不同的頁面登錄,取決於我加載的第一頁應該重定向到客戶端的另一頁。

ie假設我先加載SPA,如果用戶沒有登錄,我必須重定向到客戶端的登錄頁面。並假設我首先加載登錄頁面,並且用戶已經登錄,我必須重定向到客戶端的SPA。

這個問題的一般解決方案是什麼?

回答

1

我會把登錄和驗證放在一個單獨的頁面,然後使用ajax進行調用。

  1. 用戶訪問索引文件。
  2. 索引文件與服務器端頁面進行檢查,以查看用戶是否已登錄。
  3. 頁面顯示內容取決於來自服務器端頁面的json答案是true還是false。

然後我會在登錄這樣做。

  1. 用戶提供登錄信息通過Ajax和JSON
  2. 檢查與服務器端的文件。
  3. 頁面刷新成功或拋出錯誤響應,如果不成功。

我的答案的底線是,在創建單頁面應用程序時,ajax是最佳選擇。但是,由於您尚未提供您正在使用的語言,因此我無法給您更詳細的答案。

客戶端單頁處理的登錄信息和內容的選擇卻是非常不好的做法,應該儘量避免的,因爲他們缺乏安全的全在一起(我不能強調這一點),因爲所有的元素將提供甚至匿名訪問和DOM操作將使未經授權的用戶訪問受限制的內容。您必須使用ajax來執行後端服務器端授權 - 如上所述,以及SPA上的服務器端代碼,根據您的授權狀態呈現不同的內容。

您描述的場景需要有服務器端代碼,用於選擇要呈現的內容以及客戶端代碼以及用於實現SPA上功能的ajax。

然而,你可以做的是 - 當例如推動登錄按鈕 - 使用ajax調用另一個文件時,移除包裝div的內容並將ajax響應附加到該div。那麼你會一起避免客戶端重定向。

+0

我說的兩個頁面是登錄和應用程序,都是HTML頁面,不驗證,它發生在後端。 如果登錄和應用程序在不同的HTML頁面,我必須做一個客戶端重定向,我不喜歡。我想要一個解決方案來避免這一點。 – 2012-08-13 10:36:41

+0

修訂版是否回答您的問題?如果是這樣,請將問題標記爲已回答。 – 2012-08-13 17:05:30