Использование pgcrypt внутри приложения node.js - PullRequest
0 голосов
/ 21 апреля 2020

Мне интересно, как я могу использовать расширение pgcrypt внутри моего приложения Node.js, чтобы иметь sh мои пароли, когда я вставляю пользователя в базу данных. Возможно, это простое решение, но я не могу понять, как использовать эти расширения PG внутри приложений ...

В качестве примера, это мой запрос на создание таблицы администраторов и вставку администратора в таблицу. Теперь я хотел бы иметь sh пароль.

function createAdmin(){
    var usertypeid = null;
    const type = "adm";
    pool.query(`INSERT INTO usertype(type) VALUES ($1) RETURNING userTypeId;`, [type], function (error, results) {
        if (error){
            throw error;
        } else{
            usertypeid = results.rows[0].usertypeid;
            console.log(usertypeid);
            insertAdmin();
        }
    });

    function insertAdmin(){
        pool.query(`
                    INSERT INTO users(
                    usertypeid, userName, email, password)
                    VALUES($1, 'admin', 'admin@admin.com', crypt('admin'), gen_salt('bf'));`, [usertypeid]);
    }
}

1 Ответ

1 голос
/ 21 апреля 2020

ЗНАЧЕНИЯ ($ 1, 'admin', 'admin@admin.com', crypt ('admin'), gen_salt ('bf'))

Было бы неплохо, если вы дадите нам сообщение об ошибке.

crypt принимает два аргумента. Вы звоните с одним, а затем передаете соль как дополнительный 5-й столбец INSERT, которому нужно ровно 4 столбца. Отрегулируйте скобки.

VALUES($1, 'admin', 'admin@admin.com', crypt('admin', gen_salt('bf')))

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

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