Попытка обновить пароль (GraphQL) «данные должны быть строкой, а соль должна быть либо строкой соли» - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в GraphQL и пытаюсь обновить пароль профиля пользователя в бэкенде под моим файлом resolvers.js, но я застрял на нем некоторое время и продолжаю получать одно и то же сообщение об ошибке.

enter image description here

resolvers.js

updatePassword: combineResolvers(
  isAuthenticated,
  async (parent, args, context) => {
    const { id, newPassword, oldPassword } = args;
    const { models, user, jwtSecret } = context;

    await models.User.updatePassword(
      { id, newPassword, oldPassword },
      createToken({ newPassword }, jwtSecret, API_TIMEOUTS.JWT_TOKEN),
      user.emailAddress
    );

    return models.User.findByEmail(user.emailAddress);
  }
)

Index.js (помощник)

 const generatePasswordHash = async password => {
      const saltRounds = 10;
      return bcrypt.hash(password, saltRounds);
    }

  User.updatePassword = async (newPassword, emailAddress) => {
    const password = await generatePasswordHash(newPassword);

        return User.update(
            { password, resetPasswordToken: null },
            {
                where: {
                    emailAddress
                }
            }
        );
    };

Ошибка, которую я получаю

"данные должны быть строкой, а соль должна быть либо строкой соли, либо числом раундов"

1 Ответ

0 голосов
/ 29 декабря 2018

User.updatePassword принимает только 2 аргумента, первый из которых - пароль.Вы вызываете его с помощью 3. Проблема в том, что вы предоставляете объект для пароля ({ id, newPassword, oldPassword }), а bcrypt это не нравится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...