2013-03-16 2 views
2

Чтобы проверить, работает ли просмотр пользователя или что-то изменить с точки зрения пользователей (в разработке), может оказаться весьма полезным воплотить определенный пользователь.Войти как пользователь без пароля (для использования администратором.)

Как бы это сделать с помощью Meteor? Лучшим было бы решение, которое не зависит от аутентификации учетной записи.

ответ

6

Чтобы выдать себя за производство, вы можете позвонить setUserId на сервер и Meteor.connection.setUserId на клиенте. Для получения дополнительной информации см. Мой blog post.

+1

Если вы используете Iron router и используете 'Meteor.user()', чтобы проверить, вошел ли пользователь в функцию waitOn и т. Д. Значит ли это, что вы должны также разместить свои подписки в 'Tracker.autorun'? – MurWade

3

Если вы используете Meteor.userId() и Meteor.user() для идентификации человека в вашем JavaScript вы можете использовать что-то вроде этого, чтобы изменить это на самом верху вашего клиента JS

Meteor.userId = function (impersonate_id) { 
    return (impersonate_id) ? impersonate_id : Meteor.default_connection.userId(); 
} 

Meteor.user = function (impersonate_id) { 
    var userId = Meteor.userId(impersonate_id); 
    if (!userId) 
     return null; 
    return Meteor.users.findOne(userId); 
} 

И теперь, когда вы используете Meteor.userId или Meteor.user изменить свой код так везде, где вы используете Meteor.user & Meteor.userId принимает аргумент. Поэтому, когда вы хотите выдать себя за пользователя просто передать ему аргумент _id пользователя, которого вы хотите войти в

Meteor.user("1"); //Loads the data for user with _id 1 
Meteor.user(); //Loads the actual logged in user 

Кроме того, это будет работать только если вы на самом деле администратор и ваша опубликовывать функция позволяет см. все данные пользователя.

+0

Но как вы можете сказать, происходит ли олицетворение? Например, как я узнаю, когда нужно передать в imersonation_id? Есть ли что-то на объекте соединения, который содержит состояние олицетворения? – Aaron

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