一 什么是JWT
jwt,全称 JSON WEB TOKEN 简单地说就是在网络应用环境间传递声明而执行的一种基于JSON的开放标准。想具体了解,请移步这里。
jwt的构成: 第一部分,我们称之为头部(header),第二部分,我们称之为载荷(payload),第三部分为签证(signature)。
头部: 声明类型和声明加密的算法,通常直接使用 HMAC SHA256
载荷: 主要存放一些jwt定义的声明,包括标准中注册的声明、公共的声明和私有的声明。然后将其进行base64加密。
签证:这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密。
将这三个部分连接起来,就是一个完整的jwt。
二 如何在项目中引入
1 搭建koa2相关项目(如何搭建请移步我的上一篇文章:用koa2+mysql搭建后端服务器 )
2 下载jsonwebtoken (实现jwt) 、koa-jwt(jwt的koa中间件)、util(工具类)
npm install jsonwebtoken koa-jwt util --save
3 在app.js中使用
4、 利用中间件对token进行验证:
5、 签发token(一般放在注册和登录方法里面):
const token = jwt.sign(userToken, secret.sign, { expiresIn: "1h" }); // expirseIn 有效时长
6、前端保存token,然后在请求别的接口时头部加上token,就完成了。