gpt4 book ai didi

javascript - 防止在 meteor 中使用相同的用户名重复登录

转载 作者:行者123 更新时间:2023-11-28 08:51:40 26 4
gpt4 key购买 nike

我使用每个登录用户每 5 秒调用一次的 keepalive 方法来跟踪我的 Meteor 应用程序中的登录用户。

它更新了一个 mongo 集合,该集合保存了带有“上次查看”时间戳的用户 ID。

在我将 Meteor 更新到 0.6.5 之前,为了防止某人使用已登录的用户名登录,我已将以下代码添加到 password_server.js 文件中 帐户密码 包:

var alreadyConnected=false;
Meteor.call("isUserConnected", user._id, function(err, result) {
alreadyConnected=result;
});
if(alreadyConnected)throw new Meteor.Error(403, "User Already Connected");

紧接着:

 var user = Meteor.users.findOne(selector);
if (!user)
throw new Meteor.Error(403, "User not found");

*isUserConnected 是我在服务器代码中创建的一个方法,用于检查用户是否在过去 5 秒内发送了其 keepalive 信号。

更新后,它停止工作,我不再知道如何编辑包文件..

最佳答案

使用 keepalive 来跟踪用户是否已连接是低效的。您可以使用我的用户状态包,它跟踪连接的套接字,例如:

https://github.com/mizzao/meteor-user-status

其次,允许客户端决定是否应该允许他连接是不安全的(除其他外,会导致延迟并要求将所有用户发布到客户端。)您应该这样做这是通过在服务器端添加一个新的登录处理程序来检查用户名以及此类用户是否已连接,如果已连接则拒绝登录。有关如何定义新的登录处理程序并从客户端调用它们的信息,请参阅以下包:

https://github.com/mizzao/meteor-accounts-testing

关于javascript - 防止在 meteor 中使用相同的用户名重复登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070089/

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