【问题标题】:JWT does not generate hashed passwordsJWT 不生成散列密码
【发布时间】:2022-12-13 01:47:13
【问题描述】:

我正在尝试做这样的事情,我想检查用户是否存在,如果是,它应该表明用户存在​​,如果不存在,它应该继续注册用户。

我偶然发现了一个错误。因此,它不会生成散列密码,它也给了我这个非常有趣的错误:

我的代码看起来像这样

app.post("/api/sign-up", async function (req, res) {
  dbConn.query(
    `select * from accounts where email = ${dbConn.escape(req.body.email)}`,
    function (err, result, fields) {
      if (result.length === 0) {
        var email = req.body.email;
        var phone = req.body.phone;
        var password = req.body.password;
        var fullname = "NULL";

        const hashPass = await bcrypt.hash(password, 12);

        dbConn.query(
          `insert into accounts(email, phone, password, fullname) values (?,?,?,?)`,
          [email, phone, hashPass, fullname],
          function (error, results, fields) {
            if (error) throw error;

            return res.send({
              error: false,
              data: results,
              message: "User created Successfully",
            });
          }
        );
      } else {
        return res.send({
          error: true,
          message: "User exists",
        });
      }
    }
  );
});

如果我必须删除await,它不会按预期工作。我可能做错了什么?

【问题讨论】:

    标签: node.js rest jwt


    【解决方案1】:

    尝试在回调函数中添加异步:

    app.post("/api/sign-up", async function (req, res) {
      dbConn.query(
        `select * from accounts where email = ${dbConn.escape(req.body.email)}`,
        async function (err, result, fields) { // <==== HERE
          if (result.length === 0) {
            var email = req.body.email;
            var phone = req.body.phone;
            var password = req.body.password;
            var fullname = "NULL";
    
            const hashPass = await bcrypt.hash(password, 12);
    
            dbConn.query(
              `insert into accounts(email, phone, password, fullname) values (?,?,?,?)`,
              [email, phone, hashPass, fullname],
              function (error, results, fields) {
                if (error) throw error;
    
                return res.send({
                  error: false,
                  data: results,
                  message: "User created Successfully",
                });
              }
            );
          } else {
            return res.send({
              error: true,
              message: "User exists",
            });
          }
        }
      );
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      相关资源
      最近更新 更多