Пароль возвращает ложь при сравнении - PullRequest
0 голосов
/ 21 января 2020

Когда я сохраняю пароль, я делаю bcryp.ha sh, и он сохраняет меня в базе данных примерно так, для "1234" => (d1c8912e41fe7ae8f44717c0a2157ab9377b14a7), но когда я вхожу, я использую bcrypt.compare, он возвращает false

добавить пользователя

user: async (_, { input:{firstName, lastName, email, fullName, age, role, login, passwordHash} }, { models: { users } }) => {
      let user

      try {
        user = await users.create({
          firstName,
          lastName,
          email,
          fullName,
          age,
          role,
          login,
          passwordHash: await bcrypt.hash(passwordHash, 10)
        })
      } catch (error) {
        console.error(error)
      }
      return user
    }

войти в систему пользователя

login: async (_, { input: { email, passwordHash } }, { models: { users } }) => {
      const user = await users.findOne({ email })

      if (!user) {
        throw new Error('No user with that email')
      }
      const valid = await bcrypt.compare(passwordHash, user.passwordHash)
       if (!valid) {
         throw new Error('Incorrect password')
       }

       //return json web token
      return jsonwebtoken.sign(
        { id: user._id, email: user.email, role: user.role },
        process.env.JWT_SECRET,
        { expiresIn: '1d' }
      )
    }
...