Meteor 用户帐户设置电子邮件验证

Meteor User Account Settings email validation

我正在使用 Meteor 用户帐户 api 创建用户帐户。

https://github.com/meteor-useraccounts/core/blob/master/Guide.md

如何将电子邮件限制添加到特定域,例如仅 @mydomain.org,这样只有具有该域的用户才能登录系统,而具有其他域的其他用户(例如 @gmail.com)将无法登录系统?

我建议使用 accounts-password 包来管理用户创建和身份验证。

使用 Accounts.createUser 方法,您可以轻松创建一个用户,您可以在其中应用任何类型的检查。在您的情况下,添加正则表达式检查以确保在调用 Account.createUser 方法之前电子邮件地址来自您的域。

有一个(不幸的)未记录的 Accounts.config,它是 accounts-base 的一部分。它允许您为帐户创建设置电子邮件域限制。您的应用将不允许创建不属于该域的任何帐户:

将以下内容放入服务器和客户端启动代码中以配置帐户包:

Accounts.config({
  restrictCreationByEmailDomain: 'mydomain.com'
})

源文档说明了这个特定选项

@param {String | Function} options.restrictCreationByEmailDomain If set to a string, only allows new users if the domain part of their email address matches the string. If set to a function, only allows new users if the function returns true. The function is passed the full email address of the proposed new user. Works with password-based sign-in and external services that expose email addresses (Google, Facebook, GitHub). All existing users still can log in after enabling this option. Example: Accounts.config({ restrictCreationByEmailDomain: 'school.edu' }).

Account.config方法的源代码:https://github.com/meteor/meteor/blob/devel/packages/accounts-base/accounts_common.js#L170