【发布时间】:2017-07-31 22:17:32
【问题描述】:
我是meteor.js 的新手,如果我的问题不符合社区标准,我很抱歉。
好吧,我正在尝试在其上创建一个简单的应用程序,但遇到了用户不活动后超时的问题。
我正在使用“陈旧会话流星包”在指定的不活动时间后自动使用户超时。它注销用户,但不会取消设置“Meteor.user()”,通过它我可以在流星中知道用户已注销并调用“登录”页面的路由以重新登录。
例如,陈旧的会话在 30 秒不活动后注销用户,然后我检查了“Meteor.user()”的返回值,如果陈旧会话超时,它应该返回 undefined,相反,它正在运行带有 id 和其他详细信息的完整用户对象。
我只是想在过期会话超时时强制注销用户并显示登录屏幕。
我在互联网上搜索了两天,但找不到有关如何执行此操作的任何解决方案。最后贴出问题。
【问题讨论】:
-
听起来您没有正确安装/使用过时的会话包。你怎么知道用户已经下线了?如果
Meteor.user()仍然有一个值,那么看起来他们仍然处于登录状态。此外,检查Meteor.userId()而不是Meteor.user()以获取正在登录的用户。由于发布所需的时间,前者可以在后者之前存在网络上的完整用户对象,尤其是当用户对象很大时。 -
好吧,“用户注销”是指注销的陈旧会话方式,而不是流星方式。陈旧的会话将 loginToken 的用户表字段设置/更新为空,项目变得无用。是的,我也检查了 Meteor.userId() 但没有成功