在我的猫鼬模式中,我在密码字段中使用了以下代码..但它不检查密码的最小长度..这是怎么了?
password:{
type:String,
required:true,
match:/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/,
minlength:5
},
答案 0 :(得分:1)
嘻哈跳!等一下。您不将密码直接存储在数据库中;由于安全问题。
如何存储密码:
如何检查密码是否匹配:
Here是一个博客,解释了如何在node.js中对密码进行哈希处理。
例如:
const crypto = require('crypto'),
text = 'hello bob',
key = 'mysecret key'
// create hahs
const hash = crypto.createHmac('sha512', key);
hash.update(text);
const value = hash.digest('hex');
// print result
console.log(value);
关于密码的检查,您可以将其放入处理哈希的函数中,例如:
function checkPassword(pass) {
if (!/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/.test(pass)) {
throw new Error('E0001');
}
// Password is acceptable
}