gpt4 book ai didi

javascript - 拿起meteor.js用户注销

转载 作者:行者123 更新时间:2023-12-03 12:46:38 25 4
gpt4 key购买 nike

当用户退出网站时,有什么办法可以接听吗?当他们这样做时,我需要做一些清理工作。使用内置的 meteor.js 用户帐户。

我将使用它进行一些验证,因此我需要一个不能代表客户端其他用户触发的解决方案——最好是完全服务器端的解决方案。

最佳答案

您可以使用 Deps.autorun 设置自定义处理程序,观察 Meteor.userId() react 变量的变化。

Meteor.userId()(和 Meteor.user())是 react 变量,分别返回当前登录的 userId(如果没有,则为 null)和 Meteor.users 集合中的相应用户文档(记录)。

因此,人们可以通过对那些 react 性数据源的修改使用react来跟踪 Meteor 应用程序的登录/退出。

客户端/main.js:

var lastUser=null;

Meteor.startup(function(){
Deps.autorun(function(){
var userId=Meteor.userId();
if(userId){
console.log(userId+" connected");
// do something with Meteor.user()
}
else if(lastUser){
console.log(lastUser._id+" disconnected");
// can't use Meteor.user() anymore
// do something with lastUser (read-only !)
Meteor.call("userDisconnected",lastUser._id);
}
lastUser=Meteor.user();
});
});

在此代码示例中,我设置了一个源文件局部变量 (lastUser) 以跟踪上次登录应用程序的用户。
然后在 Meteor.startup 中,我使用 Deps.autorun 设置响应式上下文(只要访问的响应式数据源之一被修改,就会重新执行代码)。
这个 react 上下文跟踪 Meteor.userId() 变化并做出相应的 react 。

在断开代码中,您不能使用 Meteor.user() 但如果您想访问最后一个用户文档,您可以使用 lastUser 变量。
如果要在注销后修改文档,可以使用 lastUser._id 作为参数调用服务器方法。

服务器/server.js
Meteor.methods({
userDisconnected:function(userId){
check(userId,String);
var user=Meteor.users.findOne(userId);
// do something with user (read-write)
}
});

请注意,尽管恶意客户端可以使用任何用户 ID 调用此服务器方法,但除非您设置一些验证码,否则您不应该做任何关键的事情。

关于javascript - 拿起meteor.js用户注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com