Meteor账户恢复令牌"记住我"

6
我正在构建一个Meteor + Cordova应用程序,希望在移动设备上进行登录后能够 "永久保持登录状态"。
我看到了以下教程,可以设置自己的自定义 "恢复处理程序"。

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

理想情况下:

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

注意:这与Meteor Accounts autologin pattern?相关。

有什么建议吗?

2个回答

4
如何使用内置的 Accounts.config(options)?请参考http://docs.meteor.com/#accounts_config
Accounts.config({
   loginExpirationInDays: null
}) 

一旦登录,除非用户使用Meteor.logout()注销,否则它将永不过期;

但是,请注意,由于令牌存储在本地存储中,因此它有时会被iOS或Android自动清除。


“自动清除”是我记得听说过的 - 有什么办法可以避免这种情况吗?无论如何 - 这是“正确”的方法,只是我不知道如何防止它被清除。 - zeroasterisk
2
我认为无法通过操作系统来控制本地存储的清理。另一方面,您可以利用文件系统API http://plugins.cordova.io/#/package/org.apache.cordova.file。我想您可以将令牌作为备份保存在文件中。因此,您通常会从本地存储中读取令牌,如果由于清理而不存在令牌,则可以从文件中读取它。 - Green
听起来是个很好的解决方案...我会研究一下 - 谢谢! - zeroasterisk
你能告诉我关于操作系统清理本地存储的更多信息吗?如果我换成WebSQL,它是否仍然会被定期清除? - zeroasterisk
1
显然有一个错误(在撰写本文时),导致此解决方案不再起作用,请参见https://github.com/meteor/meteor/issues/5121。 - pors

3

这个mbanting:cordova-accounts-resume包将有助于解决此问题,它会将登录令牌保存在文件系统中,以便在应用程序恢复之前如果localStorage被清除时使用。


谢谢。这是一个在所有设备上都能正常工作的答案。 - pors

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接