2015-12-01 34 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", ""); 
} 

嗨!看看上面的代码。它存储在本地存储