bcrypt哈希密码代码报错 密码一致仍提示不匹配问题求助
代码问题修复方案
- 检查Express请求体解析中间件配置
你需要在Express服务的主入口文件中提前配置对应解析规则,否则req.body无法正常获取前端提交的参数,会导致密码匹配逻辑异常:
// 适配表单格式的参数提交 app.use(express.urlencoded({ extended: true })); // 适配JSON格式的参数提交 app.use(express.json());
- 校验参数名与取值是否正确
在解构req.body后新增日志,确认前端提交的参数名和后端取值是否匹配:
const { name, email, password, confirmPassword } = req.body; // 新增以下打印,确认参数实际值 console.log('完整请求体:', req.body); console.log('密码参数对比:', password, confirmPassword);
- 修复哈希逻辑的错误
你当前的加密代码硬编码了字符串'password'作为加密对象,并未使用用户输入的密码变量,修改为:
let hashedPassword = await bcrypt.hash(password, 8);
内容的提问来源于stack exchange,提问作者HAJ
相关产品推荐
相关产品推荐

