16

我想从我的 Meteor 应用程序中禁用注册。我正在使用accounts-ui smartpackage。

我试过这个:

Accounts.config({
  var forbidClientAccountCreation = true;
})

但是我的应用服务器崩溃了。我怎样才能解决这个问题?

这是使用一个通用 JS 文件,不是一个用于客户端,一个用于服务器。

4

3 回答 3

42

Accounts.config接受一个参数,它是一个javascript hashmap。您应该正确编写它:

Accounts.config({
  forbidClientAccountCreation : true
});
于 2013-04-14T21:55:32.377 回答
18

我刚刚遇到这个问题,这里的答案并不完全清楚。接受的答案适用于 OP,因为他使用的是单个 JS 文件,但如果没有,请将以下代码放在clientandserver文件夹之外的文件中。

Accounts.config({
  forbidClientAccountCreation : true
});

原因是在客户端运行它会触发accounts-ui隐藏“注册”链接和文本的功能,而在服务器上运行它实际上会禁止创建新用户帐户。

如果您只在客户端上运行它,链接和文本将被隐藏,但您仍然可以通过浏览器的控制台创建一个帐户。

如果您只在服务器上运行它,帐户创建将始终失败,但您仍会获得相关的链接和文本。

代码的一个好地方是在lib文件夹中,因为该文件夹中的任何内容都将由 Meteor 在服务器和客户端以及任何其他文件夹之前处理。例如,您可以将其放在lib/environment.js.

于 2014-08-28T20:31:12.353 回答
1

只需在控制台上输入下一个:

Accounts._loginButtonsSession.set('inSignupFlow', true);

您将再次看到注册表单。

我所做的是阻止验证服务器上的用户创建,如下所示:

Accounts.validateNewUser(function (user) {
    return false
});
于 2013-10-10T00:17:29.767 回答