Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 删除用户记录时强制注销客户端_Meteor_Meteor Accounts - Fatal编程技术网

Meteor 删除用户记录时强制注销客户端

Meteor 删除用户记录时强制注销客户端,meteor,meteor-accounts,Meteor,Meteor Accounts,我已经看到了推荐的方法 Meteor.users.update({}, {$set: { "services.resume.loginTokens" : [] }}); 注销用户,但这仅在刷新页面时有效 我正在寻找一种方法,当我从数据库中删除用户时,它会注销该用户。我需要以下代码来强制注销客户端,如果客户端是为该用户登录的。我不能等待用户刷新页面 Meteor.users.remove({_id: this.userId}) 编辑: 我已经在我的角度页面上验证了这种行为,而不是当我在流星模板

我已经看到了推荐的方法

Meteor.users.update({}, {$set: { "services.resume.loginTokens" : [] }});
注销用户,但这仅在刷新页面时有效

我正在寻找一种方法,当我从数据库中删除用户时,它会注销该用户。我需要以下代码来强制注销客户端,如果客户端是为该用户登录的。我不能等待用户刷新页面

Meteor.users.remove({_id: this.userId})
编辑:


我已经在我的角度页面上验证了这种行为,而不是当我在流星模板上时。当我在Meteor模板上时,它似乎可以工作,但当我移动到角度路线时,它会停止按要求运行。

您需要使用一些反应性的东西来检查当前用户是谁

如果您使用的是iron router,那么在用户未经授权时,可以使用登录映射器将用户重定向到登录页面

类似于

if(!Meteor.user()) { window.location = '/login'; };
如果从用户表中删除该用户,则会使您无效并重定向


显然,您需要有一些条件来保护某些区域不使其失效,但总体思路是只使用被动变量。

您需要使用一些被动变量来检查当前用户是谁

如果您使用的是iron router,那么在用户未经授权时,可以使用登录映射器将用户重定向到登录页面

类似于

if(!Meteor.user()) { window.location = '/login'; };
如果从用户表中删除该用户,则会使您无效并重定向


显然,您需要有一些条件来保护某些区域不使其失效,但一般的想法是只使用反应变量。

大声思考:使用
observe()
怎么样@CaptSaltyJack是否知道
observeChanges()
observeChanges()
是推送通知?它看起来像是拉:(.这是因为我必须在客户机上使用它,这意味着可以绕过它。不确定推/拉是什么意思。
observe()
和它的近亲接受回调,一旦光标指向的数据发生变化,他们就会调用回调。不,它不必在客户端。文档说它可以在服务器或客户端。哦,嘿。我做了一个测试项目,创建了帐户,然后在shell中运行
meteor shell
然后
meteor.users.remove({u id:'myIDhere'})
它会自动将我注销。看起来这是内置的功能。@CaptSaltyJack当observe可以在服务器或客户端上时,
Meteor.logout()
功能必须在客户端上。只要大声想一想:使用
observe()
怎么样?@CaptSaltyJack如果
observe(),你知道吗
observeChanges()
是推送通知吗?它看起来像是拉:(。这是因为我必须在客户端安装它,这意味着可以绕过它。不确定推送/拉是什么意思。
观察()
和它的近亲接受回调,一旦光标指向的数据发生变化,他们就会调用回调。不,它不必在客户端。文档说它可以在服务器或客户端。哦,嘿。我做了一个测试项目,创建了帐户,然后在shell中运行
meteor shell
然后
meteor.users.remove({{u id:'myIDhere'})
它会自动将我注销。看起来这是内置的功能。@CaptSaltyJack可以在服务器或客户端上使用,
Meteor.logout()
功能必须在客户端上。这仅在用户导航离开其所在页面时起作用,导致再次点击路由。这不会自动重定向用户当前所在页面。这仅在用户导航离开其所在页面时起作用,导致再次点击路由。这不会自动重新定位直接指向用户当前所在的页面。