2

要检查用户的视图是否正常工作或改变用户的观点(在开发中),化身某个用户可能非常有用。

我将如何使用 Meteor 做到这一点?最好的解决方案是独立于帐户身份验证的解决方案。

4

2 回答 2

6

要在生产环境中模拟用户,您可以调用setUserId服务器和Meteor.connection.setUserId客户端。有关详细信息,请参阅我的博客文章

于 2013-12-01T04:09:58.283 回答
3

如果您正在使用Meteor.userId()Meteor.user()在您的 javascript 中识别您的人,您可以使用类似这样的东西在您的客户端 js 的最顶部覆盖它

Meteor.userId = function (impersonate_id) {
    return (impersonate_id) ? impersonate_id : Meteor.default_connection.userId();
}

Meteor.user = function (impersonate_id) {
    var userId = Meteor.userId(impersonate_id);
    if (!userId)
        return null;
    return Meteor.users.findOne(userId);
}

现在,当您使用Meteor.userIdMeteor.user修改代码时,无论您在哪里使用Meteor.user&都Meteor.userId接受一个参数。因此,当您想模拟用户时,只需将_id您要登录的用户的参数传递给它

Meteor.user("1"); //Loads the data for user with _id 1
Meteor.user(); //Loads the actual logged in user

此外,这仅在您实际上是管理员并且您的发布功能允许您查看所有用户的数据时才有效

于 2013-03-16T14:35:58.330 回答