我正在使用Meteor用户帐户api创建用户帐户。
https://github.com/meteor-useraccounts/core/blob/master/Guide.md
如何为特定域(例如仅@mydomain.org
)添加电子邮件限制,以便仅允许具有该域的那些用户登录系统,而不允许其他具有其他域(例如@gmail.com
)的用户登录能够登录系统?
答案 0 :(得分:2)
(不幸的是)有Accounts.config
的一部分未记录的accounts-base
。它允许您设置用于帐户创建的电子邮件域限制。您的应用程序不允许创建不属于该域的任何帐户:
在服务器和客户端启动代码中放入以下内容以配置帐户软件包:
Accounts.config({
restrictCreationByEmailDomain: 'mydomain.com'
})
源文档说明了此特定选项
@param {String | Function} options.restrictCreationByEmailDomain
如果设置为字符串,则仅当新用户的电子邮件地址的域部分与该字符串匹配时才允许新用户。如果设置为函数,则仅当函数返回true时才允许新用户。该功能将传递给建议的新用户的完整电子邮件地址。可使用基于密码的登录和外部服务公开电子邮件地址(Google,Facebook,GitHub)。启用此选项后,所有现有用户仍可以登录。例如:Accounts.config({ restrictCreationByEmailDomain: 'school.edu' })
。
Account.config
方法的源代码:https://github.com/meteor/meteor/blob/devel/packages/accounts-base/accounts_common.js#L170
答案 1 :(得分:1)
我建议使用accounts-password
软件包来管理用户的创建和身份验证。
使用Accounts.createUser
方法,您可以轻松创建一个用户,可以在其中应用任何种类的支票。对于您而言,请在调用Account.createUser
方法之前添加正则表达式检查以确保电子邮件地址来自您的域。