我最近更新了代码的某些部分,并希望检查它们是否适用于生产数据库,该数据库针对不同用户具有不同的数据集。但我只能以自己的用户身份访问该应用程序。作为另一个用户访问流星应用程序
如何通过另一个用户的眼睛看到流星应用?
我最近更新了代码的某些部分,并希望检查它们是否适用于生产数据库,该数据库针对不同用户具有不同的数据集。但我只能以自己的用户身份访问该应用程序。作为另一个用户访问流星应用程序
如何通过另一个用户的眼睛看到流星应用?
UPDATE:要做到这一点,最好的办法是使用方法
服务器端
Meteor.methods({
logmein: function(user_id_to_log_in_as) {
this.setUserId(user_id_to_log_in_as);
}
}):
客户端
Meteor.call("logmein", "<some user_id of who you want to be>");
这是保持简单的的缘故清晰,随意放置在您自己的安全措施。
我写了一个关于它的blog post。但这里有详细信息:
在服务器上。添加只有管理员可以调用编程会改变当前登录用户的方法:
Meteor.methods(
"switchUser": (username) ->
user = Meteor.users.findOne("username": username)
if user
idUser = user["_id"]
this.setUserId(idUser)
return idUser
)
在客户端。使用所需的用户名称调用此方法,并覆盖客户端上的用户:
Meteor.call("switchUser", "usernameNew", function(idUser) {
Meteor.userId = function() { return idUser;};
});
刷新客户端以撤销。
这可能不是一个非常优雅的解决方案,但它有诀窍。
从接受的日志中稍微更新的答案以客户端身份登录为新用户以及在服务器上。
logmein: function(user_id_to_log_in_as) {
if (Meteor.isServer) {
this.setUserId(user_id_to_log_in_as);
}
if (Meteor.isClient) {
Meteor.connection.setUserId(user_id_to_log_in_as);
}
},
此处了解详情:http://docs.meteor.com/api/methods.html#DDPCommon-MethodInvocation-setUserId
这似乎并没有工作了,因为流星使用在'services.resume.loginToken' hashedTokens;这是在Meteor 1.1上,但可能更早发生。 – Han
@韩你是对的。我已经用最好的方法更新了答案 – Akshat
也在客户端控制台中调用'Meteor.connection.setUserId(userId)'。 – phocks