【问题标题】:Meteor Accounts Resume Token "Remember Me"流星帐户恢复令牌“记住我”
【发布时间】:2014-09-12 01:43:59
【问题描述】:

我正在构建一个 Meteor + Cordova 应用程序,我希望登录在移动设备上“永久存在”。

我看到以下教程,我可以设置自己的自定义“恢复处理程序”

我可能会编写我自己的(janky)上述函数的实现并尝试让它工作,可能存储在客户端的 localStorage 中......但我想我会在这里询问是否有人知道这个包装成包的具体解决方案,或者一个干净的例子。

理想情况下:

  • meteor add xxxxx:rememberme
  • 设置
    • rememberMe.config.days = 9999
    • rememberMe.config.storageClient = localStorage

注意:这与Meteor Accounts autologin pattern?有关

建议?

【问题讨论】:

    标签: login meteor accounts


    【解决方案1】:

    如何使用内置的 Accounts.config(options) http://docs.meteor.com/#accounts_config

    Accounts.config({
       loginExpirationInDays: null
    }) 
    

    一旦登录,它永远不会过期,直到用户再次使用 Meteor.logout() 注销;

    但是,请注意,由于令牌存储在本地存储中,它有时会被 iOS 或 android 自动清理

    【讨论】:

    • 我记得听说过“自动清除”——有什么办法吗?无论如何 - 这是“正确”的方式,我只是不知道如何防止它被清除。
    • 我认为操作系统无法控制本地存储清理。另一方面,您可以使用文件系统 api plugins.cordova.io/#/package/org.apache.cordova.file 。我想您可以将令牌保存在文件中作为备份。所以你通常会从localstorage读取token,如果token因为清理不存在,你可以从文件中读取。
    • 这听起来是个不错的解决方案...我会研究一下 - 谢谢!
    • 你能告诉我更多关于操作系统清理本地存储的信息吗...如果我改用 WebSQL,它还会定期被丢弃吗?
    • 显然(在撰写本文时)存在一个错误,为什么此解决方案不再有效,请参阅github.com/meteor/meteor/issues/5121
    【解决方案2】:

    这个mbanting:cordova-accounts-resume 包将通过将 loginToken 保存在文件系统上来帮助解决这个问题,如果在应用程序恢复之前清除 localStorage 时使用。

    【讨论】:

    • 谢谢。这是适用于所有设备的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2011-07-15
    • 2021-08-12
    相关资源
    最近更新 更多