• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

koa教程2 密码加密

206 0

默认情况下,我们通过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属性下,但是还是要设置,否则数据库中保存不了这个值。

保存后我们进行注册,可以看到如下内容:

这样一个加密就做好了。

0
  • 本文分类:Node
  • 本文标签:nodekoabcryptjs
  • 流行热度:已超过 206 人围观了本文
  • 最后更新:2021年03月13日 - 23时51分34秒
  • 发布日期:2021年03月13日 - 23时51分34秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

相关文章

微信收款码
微信收款码