如何通过用户帐户密码限制帐户创建?

How to restrict account creation by user accounts-password?

我正在开发一个只有管理员才能为系统创建用户的应用程序;这意味着用户被限制创建帐户,但如果登录凭据是为 him/her 创建的,则可以登录。

我正在考虑使用 houston:admin 手动创建用户,但如何限制用户使用 accounts-ui 创建帐户?

我应该使用不同的包来实现这一目标吗?

您有几种方法可以阻止用户创建帐户:

  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. configuring Accounts 禁止创建帐户(客户端和服务器):

    Accounts.config({
      forbidClientAccountCreation: true
    });
    

    拒绝客户端对 createUser() 的调用(但不会阻止使用 oAuth 服务创建用户)。

两者结合是一种可能的行动方案。 查看链接的文档以了解更多详细信息。