Как ограничить создание учетной записи с помощью учетной записи пользователя-пароля?

Я работаю над приложением, в котором только администратор должен иметь возможность создавать пользователей для системы; это означает, что пользователю запрещено создавать учетную запись, но он может войти в систему, если для него были созданы учетные данные для входа.

Я думаю об использовании houston:admin для создания пользователей вручную, но как я могу запретить пользователям создавать учетную запись с помощью accounts-ui?

Должен ли я использовать разные пакеты для достижения этой цели?


person Jori    schedule 26.11.2015    source источник


Ответы (1)


У вас есть несколько способов запретить пользователям создавать учетные записи:

  1. выдает ошибку в обратном вызове Accounts.onCreateUser() (только сервер):

    Accounts.onCreateUser(function(options, user) {
      if (/* some logic to figure out if current user is an admin */) {
        return user;
      }
      throw new Meteor.Error("user creation disabled.");
    });
    

    Это предотвратит создание учетной записи, если текущий пользователь не является администратором.

  2. настройка Accounts для запрета создания учетных записей (как клиентских, так и серверных):

    Accounts.config({
      forbidClientAccountCreation: true
    });
    

    который отклоняет вызовы createUser() от клиента (но не препятствует созданию пользователей с помощью служб oAuth).

Сочетание того и другого является вероятным курсом действий. Взгляните на связанную документацию для более подробной информации.

person MasterAM    schedule 27.11.2015