1

我正在查看另一个关于从客户端更改 userId 并遵循但没有得到预期结果的问题的答案;

Meteor.userId 是可变的

我按照步骤 1 到 5 操作没问题,但随后将 userId() 设置为我刚刚使用 Meteor.default_connection.setUserId('usersfjhjdskfh'); 在单独的浏览器中注销的用户;

因为服务器不应该返回数据,所以它没有显示一个 spinny 代替电子邮件地址,而是显示了我在那里使用的实际用户的电子邮件地址。(然而,它并没有带回派对信息并在地图上显示)。

这是预期的行为,我错过了 12 月给出的最后一个答案的要点还是发生了一些变化?(我正在运行 Meteor 0.6.2 并且从我的示例中删除了不安全和自动发布)

4

1 回答 1

1

我假设您想更改用户_id而不是通过 id 更改登录用户。要更改用户 ID,您可能会执行类似的操作

Meteor.users.update(Meteor.userId(), {$set:{_id:<new Id>}});

假设您拥有正确的权限Meteor.users.allow。这应该会更改_id当前登录用户的身份。

上一个问题演示了更改本地客户端 Meteor 功能时的安全性以及它将如何影响服务器。Meteor 服务器不信任来自客户端的任何内容,并在更改它之前使用允许/拒绝规则仔细检查它,无论当前登录用户的数据可能是什么。因此,用户确实需要登录才能更改服务器上 mongodb 数据库中有关他们的任何数据,以便提交允许/拒绝规则。

于 2013-04-20T04:48:53.830 回答