首页 > 解决方案 > bcrypt 比较:未触发回调

问题描述

我对bcrypt.compare()有一个奇怪的问题。

检查这个:

function logUserIn(redirectRouteName) {
    setIsLogin(true);
    const fields = User.getPropertiesName();
    Base('Customers').select({
      maxRecords: 1,
      fields,
      filterByFormula: `email = "${state.username}"`
    }).eachPage((records, fetchNextPage) => {
      const user = new User(records[0].fields);
      bcrypt.setRandomFallback((len) => {
        const buf = new Uint8Array(len);
        return buf.map(() => Math.floor(isaac.random() * 256));
      });

      bcrypt.compare(state.password, user.password, (err, res) => {
        // console.log('hello'): returns nothing...
        if(res){
          setUserData(user);
          setIsLogin(false);
          props.navigation.navigate(redirectRouteName);
        }
      });

    }, (err) => {
      if (err) { console.error(err); return; }
    });

  } 

我的问题是,没有触发 bcrypt 比较回调。我在它周围放了日志,很好,state.password并且user.password确实包含预期值。实际上 bcrypt.compare 中没有任何内容被执行,所以......我在这里迷路了。有任何想法吗?

标签: javascriptreact-nativebcrypt

解决方案


推荐阅读