如何过滤Accounts.createUser选项数据?

问题描述:

在我的流星项目上做一个注册部分。 我正在使用“帐户密码”模块,我想知道,如何过滤或修改“选项”参数中的数据?如何过滤Accounts.createUser选项数据?

Accounts.createUser(options, [callback]) - 它存储用户名,电子邮件,密码。

例如,我想阻止用户使用特殊符号(!#@ $)创建用户名,例如:username.replace(/[^A-Z0-9]/ig, "") 我该如何配置?

我在尝试“Accounts.onCreateUser”函​​数,但它只对“profile”(附加)信息有帮助。

+0

试图筛选客户端 - 是不是有效的,因为有人可以使用开发者控制台注册 –

Accounts.onCreateUser()允许您修改整个用户文档。您可以检查username字段并尽可能多地替换字符。

例子:

Accounts.onCreateUser((options, user) => { 
    user.username = user.username.replace(/[^A-Z0-9]/ig, "") 
    return user; 
}); 

让我们来看看Accounts.onCreateUser()

变元

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'); 
    } 
    ... 
});