我想从我的 Meteor 应用程序中禁用注册。我正在使用accounts-ui smartpackage。
我试过这个:
Accounts.config({
var forbidClientAccountCreation = true;
})
但是我的应用服务器崩溃了。我怎样才能解决这个问题?
这是使用一个通用 JS 文件,不是一个用于客户端,一个用于服务器。
我想从我的 Meteor 应用程序中禁用注册。我正在使用accounts-ui smartpackage。
我试过这个:
Accounts.config({
var forbidClientAccountCreation = true;
})
但是我的应用服务器崩溃了。我怎样才能解决这个问题?
这是使用一个通用 JS 文件,不是一个用于客户端,一个用于服务器。
Accounts.config
接受一个参数,它是一个javascript hashmap。您应该正确编写它:
Accounts.config({
forbidClientAccountCreation : true
});
我刚刚遇到这个问题,这里的答案并不完全清楚。接受的答案适用于 OP,因为他使用的是单个 JS 文件,但如果没有,请将以下代码放在client
andserver
文件夹之外的文件中。
Accounts.config({
forbidClientAccountCreation : true
});
原因是在客户端运行它会触发accounts-ui
隐藏“注册”链接和文本的功能,而在服务器上运行它实际上会禁止创建新用户帐户。
如果您只在客户端上运行它,链接和文本将被隐藏,但您仍然可以通过浏览器的控制台创建一个帐户。
如果您只在服务器上运行它,帐户创建将始终失败,但您仍会获得相关的链接和文本。
代码的一个好地方是在lib
文件夹中,因为该文件夹中的任何内容都将由 Meteor 在服务器和客户端以及任何其他文件夹之前处理。例如,您可以将其放在lib/environment.js
.
只需在控制台上输入下一个:
Accounts._loginButtonsSession.set('inSignupFlow', true);
您将再次看到注册表单。
我所做的是阻止验证服务器上的用户创建,如下所示:
Accounts.validateNewUser(function (user) {
return false
});