美文网首页
29. 使用 bcryptjs 加密

29. 使用 bcryptjs 加密

作者: 求墨者 | 来源:发表于2024-11-07 10:16 被阅读0次
$ npm install --save bcryptjs
'use strict';
const {
  Model
} = require('sequelize');
const bcryptjs = require('bcryptjs');
module.exports = (sequelize, DataTypes) => {
  class User extends Model {
    /**
     * Helper method for defining associations.
     * This method is not a part of Sequelize lifecycle.
     * The `models/index` file will call this method automatically.
     */
    static associate(models) {
      // define association here
    }
  }
  User.init({
    email: {
      type: DataTypes.STRING,
      allowNull: false,
      validate: {
        notNull: { msg: "必须填写" },
        notEmpty: { msg: "不能为空字符串" },
        isEmail: { msg: "格式不正确" },
        async isUnique(value) {
          const user = await User.findOne({ where: { email: value } })
          if (user) {
            throw new Error("邮箱已存在");
          }
        }
      }
    },
    username: DataTypes.STRING,
    password: {
      type: DataTypes.STRING,
      allowNull: false,
      validate: {
        notNull: { msg: '密码必须填写' },
        notEmpty: { msg: '密码不能为空字符串' }
      },
      set(value) {
        if (value.length >= 6 && value <= 45) {
          this.setDataValue('password', bcryptjs.hashSync(value, 10))
        } else {
          throw new Error("密码长度为6~45");
        }
      }
    },
    nickname: DataTypes.STRING,
    sex: DataTypes.TINYINT,
    company: DataTypes.STRING,
    introduce: DataTypes.TEXT,
    role: DataTypes.TINYINT,
    avatar: DataTypes.STRING
  }, {
    sequelize,
    modelName: 'User',
  });
  return User;
};

相关文章

  • bcryptjs

    加密包安装npm install bcryptjs使用,首先在定义Schema时加密 其次,在登录的时候通过用户名...

  • Express下采用bcryptjs进行密码加密

    前几天利用Express开发了个小项目,开发登录注册模块时,采用bcryptjs进行密码加密,总结了一下内容:Ex...

  • 深入解析Express下采用bcryptjs进行密码加密

    本篇文章主要介绍了Express下采用bcryptjs进行密码加密的方法,写的十分的全面细致,具有一定的参考价值,...

  • bcrypt 加密

    const bcrypt = require('bcryptjs') StaffSchema.pre('save'...

  • 2018-04-16

    HTTPS加密方式: HTTPs采用混合加密机制,使用公钥加密用于传输对称加密,之后使用对称密钥加密进行通信。...

  • AES+RSA加密联合使用

    AES+RSA加密联合使用 使用原因: 因为加密解密效率的问题 使用方式前端:前端对需要加密的数据进性AES加密,...

  • 对称加密与非对称加密

    加密 对称加密 对称双方使用同一个密钥,使用加密算法配上合适的密钥来加密,解密时使用加密过程的完全逆过程配合密钥来...

  • RSA加密

    RSA加密为非对称加密实现 对称加密:加密解密使用同一个算法 非对称加密:加密和解密使用不同算法 rsa加密原理 ...

  • 信息安全基础知识

    加密技术分为对称加密和非对称加密,区别在于加密和解密是否使用相同的密钥。对称加密使用相同的密钥,非对称加密的密钥则...

  • 视频学习《你的API还在”裸奔“吗?》

    简单区分对称加密、非对称加密对称加密就是使用相同的明文加密出来的密文都是一样的。非对称加密就是使用相同的明文加密出...

网友评论

      本文标题:29. 使用 bcryptjs 加密

      本文链接:https://www.haomeiwen.com/subject/grdpdjtx.html