2017-09-14 56 views
0

在我的流星項目上做一個註冊部分。 我正在使用「帳戶密碼」模塊,我想知道,如何過濾或修改「選項」參數中的數據?如何過濾Accounts.createUser選項數據?

Accounts.createUser(options, [callback]) - 它存儲用戶名,電子郵件,密碼。

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

我在嘗試「Accounts.onCreateUser」函​​數,但它只對「profile」(附加)信息有幫助。

+0

試圖篩選客戶端 - 是不是有效的,因爲有人可以使用開發者控制檯註冊 –

回答

0

Accounts.onCreateUser()允許您修改整個用戶文檔。您可以檢查username字段並儘可能多地替換字符。

例子:

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

讓我們來看看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'); 
    } 
    ... 
});