2013-04-14 2 views
16

Я хочу отключить регистрацию в своем приложении Meteor. Я использую учетную запись ui smartpackage.Отключить регистрацию метеоров

Я попытался это:

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

но мои сбои приложения сервера. Как я могу это исправить?

Это один универсальный JS-файл, а не один для клиента и один для сервера.

ответ

41

Accounts.config принимает один параметр, который является javascript hashmap. Вы должны правильно написать это:

Accounts.config({ 
    forbidClientAccountCreation : true 
}); 
+1

Кроме того, о безопасности этого. Не могу ли я просто отредактировать файл JS и получить учетную запись? –

+0

Вы имеете в виду, на клиенте? – mquandalle

+0

Да, я не хочу, чтобы люди редактировали его, а затем волшебным образом регистрировали: \ –

1

Просто введите следующий на консоли:

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

и вы снова увидите регистрационную форму.

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

Accounts.validateNewUser(function (user) { 
    return false 
}); 
18

Я только что столкнулся с этим и ответы здесь не совсем понятно. Принятый ответ работает для OP, потому что он использует один JS-файл, но если нет, поместите следующий код в файл за пределами client и server папок.

Accounts.config({ 
    forbidClientAccountCreation : true 
}); 

Причина заключается в том, что запуск его на клиенте запустит accounts-ui функцию скрытия «Зарегистрируйтесь» ссылки и текст, и запустить его на сервере будет фактически запретить новые учетные записи пользователей от создания.

Если вы только запустили его на клиенте, ссылки и текст будут скрыты, но вы все равно сможете создать учетную запись через консоль браузера.

Если вы запускаете его только на сервере, создание учетной записи будет всегда терпеть неудачу, но вы все равно получите связанные ссылки и текст.

Хорошее место для кода находится в папке lib, потому что все в этой папке будет обрабатываться Meteor как на сервере, так и на клиенте, а также перед любой другой папкой. Например, вы можете разместить его в lib/environment.js.

+0

Я помещаю код в папку/config, но получаю эту ошибку: не могу установить «forbidClientAccountCreation» более одного раза ' – Gobliins

+1

Если вы используете' useraccounts', вы должны вызвать свой собственный метод, так как они уже звонят 'Accounts.config' внутри, см. Https://github.com/meteor-useraccounts/core/issues/25 – ianmartorell

+0

Я использую это allright, но теперь я получаю эту проблему:' Ошибка: signUp route настроен, но forbidClientAccountCreation установлен в true!'как я могу предотвратить установку этого маршрута и только установить этот маршрут, когда clientaccountcreation установлен на false? – Gobliins

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