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 @   灰色的修饰  阅读(1382)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
主题色彩
点击右上角即可分享
微信分享提示