Счет Pac Кейдж позволяет настраивать счета домена создания через:
Accounts.config({
restrictCreationByEmailDomain: 'something.edu'
})
Но это имеет некоторые ограничения в случае Google:
- Это только со стороны клиента и позволяет только для формы Войти, чтобы должным образом разработано, чтобы представлять логотип домена и т. д. Но его можно легко преодолеть, создав URL-адрес google oauth signin вручную.
- Если вам нужно настроить дополнительные параметры, например, разрешить несколько доменов или домен и некоторых внешних пользователей (возможно, сторонних подрядчиков или поддержки от компания программного обеспечения и т. д.), это не работает. В случае учетных записей - google, пакет проверяет, является ли
restrictCreationByEmailDomain
строкой, и если это функция, она просто отбрасывает ее.
Поэтому, чтобы иметь возможность правильно и безопасно использовать такие функциональные возможности, вы должны использовать официальный Accounts.validateNewUser
обратного вызова:
Accounts.validateNewUser(function(newUser) {
var newUserEmail = newUser.services.google.email;
if (!newUserEmail) throw new Meteor.Error(403,'You need a valid email address to sign up.');
if (!checkEmailAgainstAllowed(newUserEmail)) throw new Meteor.Error(403,'You need an accepted organization email address to sign up.');
return true;
});
var checkEmailAgainstAllowed = function(email) {
var allowedDomains = ['something.edu'];
var allowedEmails = ['[email protected]'];
var domain = email.replace(/.*@/,'').toLowerCase();
return _.contains(allowedEmails, email) || _.contains(allowedDomains, domain);
};
Если вы хотите быть очень осторожными, вы можете осуществить то же самое для Accounts.validateLoginAttempt
и Accounts.onCreateUser
обратные вызовы также.
Этот метод не работал для меня. В журнале не было ошибок, но почему-то это не работало, и пользователь (нежелательный) смог войти в систему. – MegaMind