nodejs 使用jsonwebtoken进行权限验证

该博客介绍了如何在Node.js项目中使用jsonwebtoken模块来实现跨域权限验证。通过生成和验证token,确保用户身份的安全。本地设置密钥,定义token过期时间,并封装了签发和验证两个函数。
摘要由CSDN通过智能技术生成

用session的方式不好实现跨域的权限验证。token保存在客户端,服务端只做token的签发和token的验证,所以jsonwebtoken可以实现跨域的权限验证。

在nodejs项目中封装一个使用jsonwebtoken进行token签发和token验证的模块。

// 导入jsonwebtoken
const jwt = require('jsonwebtoken')

// 本地的密钥,随便定义
const PRIVATEKET = 'huangweizhi'
// token过期时间
const TIME = 60*60*6

// 生成token
exports.sign = (req) => {
  // 要生成token的主题信息
  let content = {username: req.body.username}
  // 加密的key(密钥)
  let privateKey = PRIVATEKET

  let token = jwt.sign(content, privateKey, {
    // 过期时间(秒)
    expiresIn: TIME
  })

  return token
}

// 验证token
exports.verify = (token) => {
  return new Promise((resolve, reject) => {
    // 加密的key(密钥)
    let privateKey = PRIVATEKET
    
    jwt.verify(token, privateKey, (err, decode) => {
      if (err) {
        // 验证不通过(token过期或错误)
        resolve(false)
      } else {
        // 验证通过,decode包含主题信息、token过期时间
        resolve(decode)
      }
    })
  })
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值