bcryptjs

作者: 随风飞2019 | 来源:发表于2019-09-29 07:10 被阅读0次

加密包
安装
npm install bcryptjs
使用,首先在定义Schema时加密

var userAddSchema = new mongoose.Schema({
    name:{type:String,unique:true,required:true},
    sex:{type:String,required:true},
    username:{type:String,unique:true,required:true},
    password:{type:String,required:true,set(val){return require("bcryptjs").hashSync(val,5)}},
    email:{type:String,unique:true,required:true},
})

Schema里面,使用set方法,把传入的val,通过调用bcryptjs的hashSync加密,加密等级5
set(val){return require("bcryptjs").hashSync(val,5)}

其次,在登录的时候通过用户名,获取到数据库中保存的密码,和提交的密码进行比对

router.post('/login', async (ctx, next)=> {
    let {admin,pass}=ctx.request.body;       //结构出前端提交的用户名和密码
    await userModel.findOne({username:admin})
        .then(res=>{
            if(res.username==admin && require("bcryptjs").compareSync(pass,res.password)){
                           //调用bcryptjs的compareSync方法,比较提交的密码和数据库查询结果密码,注意顺序
                ctx.body={
                    code:200,
                    message:"登录成功!"
                }
            }else{
                ctx.body={
                    code:201,
                    message:"账号或密码错误,请重试!"
                }
            }
        })    
})

相关文章

网友评论

      本文标题:bcryptjs

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