Bcryptjs - React - 比较密码不起作用

问题描述 投票:0回答:1

我无法让 bcrypt 在 React 中工作。

步骤:

npm 安装 bcryptjs

const bcrypt = require("bcryptjs");

  const signupinfo = {
    firstName: fname,
    lastName: lname,
    email: email,
    pwd: bcrypt.hashSync(password),
  };

//然后通过 Spring Rest api 将其保存到 Postgres

我有另一种形式,可以提取数据库记录并传递给“react”,然后进行比较。

const isPasswordValid = bcrypt.compareSync(密码, 响应.data.pwd);

这没有按预期工作。它返回 false,昨天和今天它总是 true,即使密码不正确。

场景: 注册表单...哈希并存储 登录表单...检索并与表单中的纯密码进行比较。

测试用例:

  1. 在登录表单中输入正确的密码并提交。检查控制台打印是否正确
  2. 在同一登录页面中,使用额外字符编辑密码。期望控制台打印 false。

但是测试并没有按预期进行。不确定是否有缓存等

链接 https://www.npmjs.com/package/bcryptjs-react 告诉 npm i bcryptjs-react 以及 npm install bcryptjs

不确定是否两者都需要安装。

我到处看到的只是简单的3行使用代码,但不起作用 像许多帖子一样 - post1post2

有什么错误吗?请指教

reactjs react-native bcrypt
1个回答
0
投票

注册时,您必须对密码进行哈希处理,并且必须提供盐值

var salt = bcrypt.genSaltSync(10);
var hash = bcrypt.hashSync("test_password", salt);
© www.soinside.com 2019 - 2024. All rights reserved.