Javascript 角度/离子-如何有效保存登录信息

Javascript 角度/离子-如何有效保存登录信息,javascript,angularjs,cordova,ionic-framework,Javascript,Angularjs,Cordova,Ionic Framework,在我当前的实现中,我将用户登录名和密码保存在本地存储器中。在开始时,我阅读了这个信息是否存在。如果是,我将针对服务器进行验证,如果不是,我将打开登录屏幕而不是应用程序 然而,事实证明,本地存储并不是最好的解决方案,因为它可以被操作系统出于看似随机的原因删除(我的iOS体验)。这是烦人的用户,因为他必须重新登录,可能忘记了他的密码已经->更改密码 你如何解决这个问题?SQLite?文件存储?饼干?? 是否有我从未听说过的标准实现 谢谢 EL本地存储应该可以正常工作。但是,您如何将其保存到本地存储?

在我当前的实现中,我将用户登录名和密码保存在本地存储器中。在开始时,我阅读了这个信息是否存在。如果是,我将针对服务器进行验证,如果不是,我将打开登录屏幕而不是应用程序

然而,事实证明,本地存储并不是最好的解决方案,因为它可以被操作系统出于看似随机的原因删除(我的iOS体验)。这是烦人的用户,因为他必须重新登录,可能忘记了他的密码已经->更改密码

你如何解决这个问题?SQLite?文件存储?饼干?? 是否有我从未听说过的标准实现

谢谢
EL

本地存储应该可以正常工作。但是,您如何将其保存到本地存储?有些东西可能会过期

看看这个:


另外,我建议不要在本地保存密码,您应该向服务器进行身份验证,获取一些身份验证令牌并保存。

我使用的是角度缓存插件,因为它支持在本地存储中存储对象

这是我的已登录/注销用户模板

angular.module('starter.services',[]).factory('Cache',function(CacheFactory){

  return {
    logIn : function(info){
      userCache = CacheFactory.get('userCache');

      if(userCache) CacheFactory.destroy('userCache');

      userCache = CacheFactory('userCache',{storageMode:"localStorage"});
      var put = userCache.put('user', info);
      return userCache;
    },
    checkLogIn : function(){
      var r = userInfo(CacheFactory);
      return r;
    },
    logOut : function() {
      var userCache = CacheFactory.get('userCache');

      if(userCache == undefined){
        userCache = CacheFactory('userCache',{storageMode:"localStorage"});
      }

      userCache.destroy();

      return userCache;
    }
  }
});

谢谢您能否更具体地说明本地存储的过期时间?这是这里的主要问题。是的,已存储身份验证令牌…它是永久性的,还是因为操作系统擦除了本地存储而导致本地存储丢失而经历了随机事件?在存储模式中有3种选择:
内存
:缓存将在内存中保存数据。刷新页面时,数据将被清除<代码>本地存储:缓存将在本地存储中保存数据(如果可用)。刷新页面时不清除数据<代码>会话存储:缓存将在会话存储中保存数据(如果可用)。刷新页面时不会清除数据。在我的应用程序中,我将storageMode设置为
localStorage
。即使当用户更新应用程序时,数据也不会消失。嗯,可能是因为我使用了直接
窗口,所以我经历了这种情况。localStorage
访问,而不是包/库?
窗口
在爱奥尼亚应用程序中没有定义。您只能在浏览器上使用它。