2016-10-02 7 views
2

Я работаю над приложением Meteor. У меня открыта ракета метеор. Мне нужно сделать вставку для быстрого теста, но мне нужно притвориться, что я аутентифицирован как конкретный пользователь (я знаю userId). Внутри метеорной оболочки есть ли способ войти в систему как конкретный пользователь с именем userId?Как я могу войти в систему как конкретный пользователь из оболочки метеора

Спасибо!

ответ

1

Вы не можете имитировать пользователя, которого требуется войти в поле.

Я не уверен, что именно вы тестируете, но если это некоторые правила allow/deny для коллекции, попробуйте создать метод, который будет делать ваши вещи, войти в систему по желанию пользователя и вызвать метод.

Также внутри метода вы можете запустить this.setUserId(userId). Это просто устанавливает значение userId для будущих вызовов методов, полученных в этом соединении.

0

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') на клиенте.

 Смежные вопросы

  • Нет связанных вопросов^_^