2015-12-01 90 views
2

我想用onsen ui和angularjs來開發一個hybird應用程序,但是現在我遇到了一個問題,這個應用程序不能存儲用戶的登錄信息,所以用戶必須每次關閉應用程序後都要登錄。如何使用onsen ui存儲登錄信息?

我使用$ cookie,service和$ rootScope來存儲用戶的登錄信息,但它們都不能在android平臺上工作。

任何人都可以幫我解決這個問題呢?

+1

小建議,但你應該出於安全原因散列密碼。然後,每當他們重新登錄時,重新密碼輸入並將其與保存的哈希值進行比較。 – Krythic

回答

3

在像Onsenui這樣的HTML5移動框架上,我建議使用localStorage。

你可以看看這兩個AngularJs模塊:

他們已經很好的書面說明和演示代碼作爲參考。

+0

非常感謝,這有助於我解決這個問題。 – Miao

2

使用這個插件https://github.com/litehelpers/Cordova-sqlite-storage或類似建立SQLite數據庫的東西。用你想保留的信息(用戶名和密碼)創建一張表。您可以創建密碼的散列並將其存儲以提高安全性(md5或sha1)。

您還可以保留登錄的時間戳並讓用戶登錄特定的時間間隔,因此當他打開該應用程序時,檢查您是否在此時間間隔內(如日,周等)最後一次登錄,如果是,則自動登錄,否則再次顯示登錄屏幕。

+0

聽起來不錯,我會學習如何使用它。謝謝你的幫助。 – Miao

3
if (window.localStorage.getItem("rememberMe") == "true") { 
     $scope.userEmail = window.localStorage.getItem("userName"); 
     $scope.userPassword = window.localStorage.getItem("password"); 
     document.getElementById("rememberMe").checked = true; 
} 
else { 
     document.getElementById("rememberMe").checked = false; 
} 
if (document.getElementById("rememberMe").checked == true) { 
     window.localStorage.setItem("rememberMe", "true"); 
     window.localStorage.setItem("userName", $scope.userEmail); 
     window.localStorage.setItem("password", $scope.userPassword); 
} 
else if (document.getElementById("rememberMe").checked == false) { 
    window.localStorage.setItem("rememberMe", "false"); 
    window.localStorage.setItem("userName", ""); 
    window.localStorage.setItem("password", ""); 
} 

嗨!看看上面的代碼。它存儲在本地存儲