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