javascript - 来自客户端的 Meteor.userId - 更改显示用户电子邮件,行为正确吗?

标签 javascript security meteor

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

Meteor.userId is changeable

我按照步骤 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/

相关文章:

javascript - meteor 出版领域问题

mongodb - "group by"对 meteor 收集的查询

javascript - 删除断开 socket.io 上的对象

javascript - 在 react-bootstrap-table 中添加编辑按钮

java - 简单的编程理论问题

生成安全代码的算法

javascript - 测试一个简单的组件在使用 JEST 被 withFormik() 包装时呈现

javascript - RXJS 在 html5 Canvas 上画线

java - 多证书导入问题

Meteor/React - 如何等待 Meteor.user()