如何从流星外壳以特定用户身份登录

时间:2016-10-02 18:22:59

标签: meteor meteor-accounts meteorite

我正在研究Meteor应用程序。我打开了流星壳。我需要插入一个快速测试,但我需要假装我作为特定用户进行身份验证(我知道userId)。在meteor shell中,有没有办法让我以给定userId的特定用户身份登录?

谢谢!

2 个答案:

答案 0 :(得分:1)

您无法在meteor shell中模拟登录用户。

我不确定你究竟在测试什么,但如果它是关于收集的一些允许/拒绝规则,请尝试创建执行你的东西的方法,以想要的用户和调用方法登录。

同样在内部方法中,您可以运行this.setUserId(userId)。这只是为在此连接上接收的未来方法调用设置userId的值。

答案 1 :(得分:1)

meteor shell使您可以访问服务器,该服务器与特定用户会话无关。相反,您将要从客户端模拟用户(在浏览器中打开控制台)。

在客户端上尝试:

@impersonateUser = (userId) -> Meteor.call "impersonate", userId, (err,res) -> if err console.log err else Meteor.connection.setUserId res._id console.log 'Now impersonating ' + res.emails[0].address

这在服务器上:

Meteor.methods impersonate: (query) -> throw new Meteor.Error(403, "Permission denied") unless Meteor.user().isAdmin u = Meteor.users.findOne(query) throw new Meteor.Error(404, "User not found") unless u @setUserId u._id return u

然后在客户端上运行impersonateUser('someUserId')