Loading

Loading

jsonwebtoken使用方法

const jtw = require('jsonwebtoken')

// 用于加解密的密钥
const secretkey = 'my_token'

// 生成token
// 接收三个参数:
// 第一个是载荷,用于编码后存储在 token 中的数据,也是验证 token 后可以拿到的数据;
// 第二个是密钥,自己定义的,验证的时候也是要相同的密钥才能解码;
// 第三个是options,可以设置 token 的过期时间。例如: { expiresIn: '2h'}、{ expiresIn: '1day' },
function getToken() {
  const token = jtw.sign({
    name: 'jack',
    id: '1000'
  }, secretkey, { expiresIn: '72h'})
  console.log('生成token:', token)
  return token
}

// 解析token
function Decryption(token) {
  return new Promise(resolve=> {
    jtw.verify(token, secretkey, (err, data) => {
      if (err) {
        console.log('err:', err)
        return resolve(null)
      }
      console.log('解析token:', data)
      resolve(data)
    })
  })
}

const token = getToken()
Decryption(token)

AES 加密

const cryptojs = require('crypto-js')

const secretkey = 'secret key 123'

/**
 * 加密
 * @param {string} data 
 */
function encryption(str) {
  const res = cryptojs.AES.encrypt(str, secretkey).toString()
  console.log('加密内容:', res)
  return res
}


/**
 * 解密
 * @param {string}} data 
 */
function decryption(str) {
  const bytes = cryptojs.AES.decrypt(str, secretkey)
  const res = bytes.toString(cryptojs.enc.Utf8)
  console.log('解密内容:', res)
  return res
}

module.exports = {
  encryption,
  decryption
}
posted @ 2020-11-24 23:41  灰色的修饰  阅读(1362)  评论(0编辑  收藏  举报