mysql - 使用 Sequelize 和 mysql 加密密码列

标签 mysql sequelize.js

我是第一次使用sequelize,对加密用户密码有疑问。

我想使用函数 AES_ENCRYPT 来加密字符串文本。 我的问题是,如何在 sequelize 上调用该函数?

最佳答案

你只需要bcrypt包和钩子(Hook)beforeCreate,

它会做的是在将条目插入数据库之前将检查 passowrd 字段并在插入数据库之前加密

给你(密码加密的片段):

const bcrypt = require('bcrypt');

var User = db.sequelize.define( 'user' , {
    ...
    password : {
        type : db.Sequelize.STRING
    },
    ...
},
{
    hooks : {
        beforeCreate : (user , options) => {
            {
                user.password = user.password && user.password != "" ? bcrypt.hashSync(user.password, 10) : "";
            }
        }
    }
});

关于mysql - 使用 Sequelize 和 mysql 加密密码列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51783864/

相关文章:

java - 为什么 Booleanexecute(String SQL) 总是 true,即使我的输入不在我的数据库中

javascript - 查找基于的所有对象的正确查询有很多关系

javascript - 序列化查询以选择匹配或部分匹配的名称

mysql - 从sequelize中的插入中获取自动生成(通过触发器)字段

javascript - SQL 与 Sequelize : Compare json columns using where

node.js - SQLite 的自动 Sequelize

mysql - 从选择中删除

mysql - Webmin - 将子域关联到多个数据库

php - 如何使用存储在数据库中并在新页面中回显的 PHP 代码?

php - 列的值作为表名