Пожалуйста, помогите мне получить хешированный пароль - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь получить хешированный пароль для администратора.

Я пытался хэшировать пароль, но мне не удалось вставить его в объект пользователя.

import encryptor from '../helpers/password';

let hashed_pswd = 'john123';
const hashPassword= async () => {
    const adminPwd = await encryptor.encryptPassword(hashed_pswd, 10);
    console.log(adminPwd);
}
hashPassword();

export default [
    {
        id: 1,
        first_name: 'john',
        last_name: 'doe',
        email: 'john@gmail.com',
        password: adminPwd,
        address: 'kigali',
        is_admin: true
    }
]

Я могу записать хэшированный пароль в консоли, но когда я пытаюсь отправить запрос POST, я получаю, что adminPwd не определено.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 19 мая 2019

Поскольку вы используете async/await для функции hashPassword, вы можете также обернуть весь код в один и удалить эту функцию.Вам следует переименовать вашу переменную hashed_pswd во что-то более значимое, потому что на этом этапе она не хэшируется.Я назвал его password.

import encryptor from '../helpers/password';

export default async () => {

  const password = 'john123';
  const hashedPassword = await encryptor.encryptPassword(password, 10);

  return [{
    id: 1,
    first_name: 'john',
    last_name: 'doe',
    email: 'john@gmail.com',
    password: hashedPassword,
    address: 'kigali',
    is_admin: true
  }];

};

И import тому модулю, который вам придется использовать async, чтобы обернуть ваш код, потому что вы возвращаете обещание от этого asyncв getUserData.

import getUserData from './getUserData.mjs';

(async () => {

  console.log(await getUserData());

})();
0 голосов
/ 19 мая 2019

Чтобы решить эту проблему, необходимо объявить adminPwd , используя let вместо const в глобальной области видимости или в области, где ваш раздел экспорта по умолчанию может получить к ней доступ .

Refer to modified code snippet:

import encryptor from '../helpers/password';

let hashed_pswd = 'john123';
let adminPwd;
const hashPassword = async () => {
    adminPwd = await encryptor.encryptPassword(hashed_pswd, 10);
            console.log(adminPwd);
            return [
                {
                    id: 1,
                    first_name: 'john',
                    last_name: 'doe',
                    email: 'john@gmail.com',
                    password: adminPwd,
                    address: 'kigali',
                    is_admin: true
                }
            ]
}

export default hashPassword;

Куда бы вы ни импортировали эту функцию, вызовите функцию экспортаперед его использованием.

In order to Consume this response you have two options:

  1. В асинхронной функции с использованием ключевого слова await

  2. Если не используется в асинхронной функциииспользуйте метод обещания.

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