koa教程2 密码加密
默认情况下,我们通过User.create({ email, password, nickname });
模型传入的数据,是无加密的,也就是说,在数据库中密码是明文显示的,这样肯定是不行,我们需要使用bcrypt
插件进行加密
yarn add bcryptjs --dev
打开models/user.js
user.js:
const bcrypt = require("bcryptjs");
const { sequelize } = require(`${process.cwd()}/core/db`);
const { Sequelize, Model, DataTypes } = require("sequelize");
class User extends Model {
};
User.init({
id: {
type: DataTypes.INTEGER,
primaryKey: true, //主键
autoIncrement: true, //自增
},
nickname: DataTypes.STRING,
email: {
type: DataTypes.STRING(128),
unique: true, //唯一
},
password: {
type: DataTypes.STRING,
set(val) {
console.log(val)
const salt = bcrypt.genSaltSync(10);
const psw = bcrypt.hashSync(val, salt);
this.setDataValue('password', psw);
}
},
openid: {
type: DataTypes.STRING(64),
unique: true, //唯一
},
}, {
sequelize,
tableName: "user", //指定生成的表名
});
module.exports = {
User
}
password有一个set方法,有set自然有get,这个以后再说,set接受一个参数,就是你要设置的值,我们将其加密后,通过this.setDataValue('password', psw);
进行保存,一定要传入第一个参数,也就是你要设置的字段名,虽然是在password属性下,但是还是要设置,否则数据库中保存不了这个值。
保存后我们进行注册,可以看到如下内容:
这样一个加密就做好了。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据