JWT (Json web token)

基于token的鉴权机制

JWT是由三段信息形成的

header
申明算法的字段名为alg,同时还有一个typ的字段,默认JWT即可

payload
载荷即音讯体,这里会寄存理论的内容,也就是Token的数据申明,例如用户的id和name

Signature
签名是对头部和载荷内容进行签名,设置一个secretKey,对前两个的后果进行HMACSHA25算法

实现

生成token:登录胜利的时候,颁发token
验证token:拜访某些资源或者接口时,验证token

// 生成token// 借助第三方库jsonwebtoken,通过jsonwebtoken 的 sign 办法生成一个 token:      const token = jwt.sign(          {          name: result.name        },        "test_token", // secret        { expiresIn: 60 * 60 } // 过期工夫:60 * 60 s      );
// 校验token// 应用 koa-jwt 中间件进行验证/ 留神:放在路由后面app.use(koajwt({  secret: 'token'}).unless({ // 配置白名单  path: [/\/api\/login/]}))