我最近更新了代碼的某些部分,並希望檢查它們是否適用於生產數據庫,該數據庫針對不同用戶具有不同的數據集。但我只能以自己的用戶身份訪問該應用程序。作爲另一個用戶訪問流星應用程序
如何通過另一個用戶的眼睛看到流星應用?
我最近更新了代碼的某些部分,並希望檢查它們是否適用於生產數據庫,該數據庫針對不同用戶具有不同的數據集。但我只能以自己的用戶身份訪問該應用程序。作爲另一個用戶訪問流星應用程序
如何通過另一個用戶的眼睛看到流星應用?
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