【发布时间】:2019-05-05 01:02:40
【问题描述】:
我是 Express.js 和 Passport.js 的新手,所以我可能做错了什么,因为 bcrypt comapre 函数总是返回 false。
public static findUser = async ({ email, password }) => {
const pool = await new sql.ConnectionPool(CommonConstants.connectionString).connect();
const request = pool.request();
const result = await request
.input("Email", sql.NVarChar, email)
.execute("FindUserSP");
const user = result.recordset;
return await bcrypt.compare(password, user[0].Password) ? user : {};
};
这就是哈希的创建方式:
const password = req.body.Password;
const email = req.body.Email;
const salt = await bcrypt.genSalt(10);
const hash = await bcrypt.hash(password, salt);
测试用例:
Hash: $2b$10$nK1.wW71NcBIQkMQq6wpHe/HMhCjOaQNy9BpfPDef01
password: 123
version: 3.0.2
【问题讨论】:
-
您是否意识到
return user;永远不会将user返回给任何东西? -
@CodyG.,是的,这就是更新的原因。
-
好的,那么 password 和 user[0].Password 的测试用例是什么?什么加密版本?
-
哈希:$2b$10$nK1.wW71NcBIQkMQq6wpHe/HMhCjOaQNy9BpfPDef01,密码:123,版本:3.0.2
-
$2b$... 嗯
标签: node.js express passport.js bcrypt