我正在查看另一个关于从客户端更改 userId 的问题的答案并遵循,但没有得到预期的结果;
我按照步骤 1 到 5 进行操作,没有出现任何问题,但随后使用 Meteor.default_connection.setUserId('usersfjhjdskfh'); 将 userId() 设置为我刚刚在单独的浏览器中注销的用户;
由于服务器不应返回数据,因此它不会显示旋转的电子邮件地址,而是显示我在那里使用的实际用户的电子邮件地址。 (但是,它没有带回聚会信息并将其显示在 map 上)。
这是有意为之的行为吗?我错过了 12 月份给出的最后一个答案的要点,还是有什么变化? (我正在运行 Meteor 0.6.2,并且不安全和自动发布都已从我的示例中删除)
最佳答案
我假设您想要更改用户的_id
,而不是通过 ID 更改登录用户。要更改用户 ID,您可能可以执行类似的操作
Meteor.users.update(Meteor.userId(), {$set:{_id:<new Id>}});
假设您拥有 Meteor.users.allow
的正确权限。这应该会更改当前登录用户的 _id
。
上一个问题演示了更改本地客户端 Meteor 功能时的安全性以及它将如何影响服务器。 Meteor 服务器不信任来自客户端的任何内容,并在更改之前使用允许/拒绝规则进行双重检查,无论当前登录用户的数据是什么。因此,用户确实需要登录才能更改服务器上 mongodb 数据库上有关他们的任何数据,以便提交允许/拒绝规则。
关于javascript - 来自客户端的 Meteor.userId - 更改显示用户电子邮件,行为正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116075/