【封装】token的生成使用与密码加密操作

【封装】token的使用与密码加密操作

token封装

引入 jsonwebtoken模块

let jwt = require("jsonwebtoken")

封装生成签名与校验签名的方法

module.exports = {
  //生成签名
  sign:({username,_id})=>{
    return jwt.sign({username,_id},"NZ1906",{expiresIn:60*60*24})
  },
  //校验签名
  verify:token=>{
    return new Promise((resolve,reject)=>{
      jwt.verify(token,"NZ1906",(err,decode)=>{
        if(!err){
          resolve(decode)  //decode={username,_id}
        }else{
          reject(err.message)
        }
      })
    })
  }
}

以上代码可以封装为jwt.js文件


加密封装

引入bcrypt模块

let bcrypt = require("bcrypt")

封装加密与解密方法

module.exports = {
  //加密  const hash = bcrypt.hashSync(用户未加密的密码, salt);
  hashSync:password=>{
    return bcrypt.hashSync(password,10)
  },
  //解密校验 bcrypt.compareSync(用户未加密的密码, 用户加密之后的hash密码);
  compareSync:(password,hash)=>bcrypt.compareSync(password,hash)
}

以上代码可以封装为bcrypt.js文件


注意:在使用的时候可能会遇到安装不上的问题,这里可以选择安装 bcryptjs 模块,

bcryptjs是一个第三方密码加密库,是对原有bcrypt的优化,优点是不需要安装任何依赖
在纯JavaScript中优化了 bcrypt,兼容 bcrypt ,也就是说,与上面的用法一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值