步骤
1、下载jwt(jsonwebtoken)
在你项目的cmd中输入如下命令,安装jwt
npm install jsonwebtoken
2、写代码
我这里是新建了一个util文件夹,里面有个token.js文件

代码:
/*
 * @Author: Poker_旭
 * @Descripttion: token解密与加密
 * @version: 1.52
 * @Date: 2021-02-04 20:43:40
 */
const jwt = require('jsonwebtoken');	//引入jwt包
let encrypt = (data, time) => {
  /**
   * @name: 加密函数
   * @param {
   *    *data:  要加密的数据
   *    *time:  过期的时间
   * }
   * @return {*token:加密信息}
   */
  return jwt.sign(data, 'token', { expiresIn: time });
}
let decrypt = (token) => {
  /**
   * @name: 解密函数
   * @param {*token:  要解密的token}
   * @return {
   *    *id:  用户id,便于其他接口使用
   *    *token: 用于作为判断token是否过期或者有效的标识
   * }
   */
  try {
    let data = jwt.verify(token, 'token');
    return {
      gadID: data.gadID,
      token: true
    }
  } catch (err) {
    return {
      gadID: err,
      token: false
    }
  }
}
module.exports = {	//将这两个加密函数和解密函数导出去
  encrypt,
  decrypt
}
加密函数中的.sign方法有三个参数:
- 
第一个是要加密的数据; 
- 
第二个是密钥(secret),这个是一个string类型 的变量,名字你可以随便取,我的理解是我们将第一个参数加密,这样就是一把锁,而第二个参数就是这把锁的钥匙,就像你去五金店买锁一样,老板会同时给你锁和对应的钥匙的,因为你解锁的时候也是又要锁,又要钥匙,也就是说这个第二个参数是为了解密的时候准备的,在这里相当于给这个钥匙起个名字而已。 
- 
第三个是一个配置对象,其中一个配置项就是 expiresIn,意思就是这把锁的持续时间,60就是60秒,即一分钟;60 * 60就是60 * 60秒,即一个小时,但是一小时还可以用’1h’来表示,更多配置如下:
  
3、登录接口使用加密
像我这里,假如登录成功的化话,我就向前端发送一个加密后的token
这是加密后的数据

4、其他接口使用解密

这是解密成功后的数据:

这是解密失败后的数据,因为时间过期了:
*最后说明一点,加密函数中的那个第一个参数是json对象,要看清楚,如:
{
id: 1 //这个是正确的
}
{
“id”: 1 //这个是错误的
}
一个有引号,一个没有引号!
本文转自 https://blog.csdn.net/m0_46694056/article/details/113704698,如有侵权,请联系删除。
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号