在我的流星项目上注册。 我正在使用“帐户密码”模块,我想知道,如何在“options”参数中过滤或修改数据?
Accounts.createUser(options, [callback]) - 它存储用户名,电子邮件,密码。
例如,我想阻止用户使用特殊符号(!#@ $)创建用户名,例如:username.replace(/[^A-Z0-9]/ig, "")
我该如何配置?
我正在尝试“Accounts.onCreateUser”功能,但它只对“个人资料”(附加)信息有帮助。
答案 0 :(得分:0)
Accounts.onCreateUser()
允许您修改整个用户文档。您可以检查username
字段并在其中替换您喜欢的字符。
示例:
Accounts.onCreateUser((options, user) => {
user.username = user.username.replace(/[^A-Z0-9]/ig, "")
return user;
});
答案 1 :(得分:0)
我们来看看Accounts.onCreateUser()
:
ARGUMENTS
func 功能
每当创建新用户时调用。返回新的用户对象,或者抛出
Error
以中止创建。
因此,为了阻止用户在用户名中使用任何特殊字符,您应该执行以下操作:
Accounts.onCreateUser((options, user) => {
const re = new RegExp('^[a-z0-9]+$', 'i');
if (!re.test(user.username)) {
throw new Error('invalid-username', 'Entered username is invalid');
}
...
});