【问题标题】:Ionic 2 app: remember user on the deviceIonic 2 应用程序:记住设备上的用户
【发布时间】:2016-05-19 08:58:25
【问题描述】:

我有一个 Ionic 应用程序,我想在登录页面中添加一个“记住我”复选框,这样一旦用户登录,他将永远登录(除非他注销),即使他关闭并重新打开应用程序,就像 Facebook 应用程序一样。 有没有办法在 Ionic 2 中做到这一点?

谢谢!

【问题讨论】:

    标签: authentication ionic2 remember-me


    【解决方案1】:

    您可以使用 localstorage 保存一些数据以供您自己的验证/逻辑处理。它支持 html5 且易于使用。缺点是它不安全,并且在内存不足或清除缓存时可能会被系统擦除。

    HTML(按下按钮时,但您可以根据自己的喜好设置):

    <button secondary (click)="addLocalStorage()">Done</button>
    

    在您的控制器中:

    import {Storage, LocalStorage} from 'ionic-angular';
    constructor(navController, local) {
        this.navController = navController;
        this.local = new Storage(LocalStorage);
    }
    addLocalStorage(){
        this.local.set("didTutorial","true");
        //set the doneTutorial to be true
    }
    

    说明: 在构造函数中,我们创建了一个名为“local”的新本地存储对象。 要调用它,我们使用 'this.local' 和 'set' 是存储它的方法。

    设置(键,值)

    在上面的示例代码中,我使用 'didTutorial' 作为键,使用 'true' 作为值。

    要检索它,您可以在此页面或任何其他页面检索它。 只要记住导入 Storage 和 LocalStorage 并在构造函数中声明一个新的 localstorage 对象即可。(同上)

    要检索的代码是:

    var value = localStorage.getItem('didTutorial');
    

    getitem(键,值)

    【讨论】:

    • 你说它的缺点,这不是正确的做法吗?像 Facebook 这样的专业应用是如何做到的?
    • @MicheleStieven ,如果您想存储用户凭据,那么 securestorage(android) 和 keychain(ios) 可能是一种可能的选择。有插件和库。但是对于记住我这样简单的事情,您可以像上面的示例一样使用本地存储。
    • @Gene为什么不能导入Storage和LocalStorage
    【解决方案2】:

    您可以使用 storage 和 sqlStorage 来保存用户数据。然后检查它是否有已保存的用户。

    参考:- https://www.thepolyglotdeveloper.com/2015/12/use-sqlite-in-ionic-2-instead-of-local-storage/

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      localStorage 工作正常,但我确认@Gene 谈到的缺点。它不可靠,尤其是在没有太多可用存储空间的 iPhone 上

      我使用 ionic 1,因此无法尝试此解决方案,但您可能想查看一下:https://ionicframework.com/docs/native/native-storage/ ;可能更可靠!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-15
        • 1970-01-01
        • 1970-01-01
        • 2015-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多