最近使用koa2的时候,想到使用jwt进行 鉴权。于是就使用了。下面是具体引用步骤
安装依赖包
 npm install jsonwebtoken 和 npm install koa-jwt. jsonwebtoken是当下最通用
 的服务端与客户端鉴权方式。即: 客户端输入账号密码,请求服务端后,服务端通过jsonwebtoken
 生成一个token字符串,返回给客户端,此后,客户端与服务器的会话都由这个token 来保持, 这
 个生成的token会对应客户端传来的账号和密码。每次客户端携带这个token来进行身份识别。
使用kow-jwt中间件
 在app.js中引入 kow-jwt。然后设置中间件,使得每次请求都来校验token
1  | 
  | 
生成token
在login接口处使用jwt的sign 方法 生成token
1  | const jwt = require('jsonwebtoken')  | 
验证token
我们写一个接口getUserInfo来验证token是否可用1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26const getUserInfo = function (ctx, next) {
    const req = ctx.request.body
    // 一般情况下token 是通过header来传递的
    const token = ctx.header.authorization
    // 解析token
    const result = await tool.verifyToken(token);
    // result 就是用户登录时存到jsonwebtoken中的登录信息
    // 拿这个里面的信息去查数据库,取到用户的基本信息
    const data = await user.find(req.mobile)
    ctx.body = {
        code: 0,
        desc: '获取用户信息成功',
        data: data
    }
}
// tool.js的 verifyToken 方法
const getToken = require('jsonwebtoken')
// 注意,这个地方的密钥和app.js中的一样
const jwtSecret = 09876
const verifyToken = function (token) {
    return new Promise((reslove, reject) => {
        const info = getToken.verify(token.split(' ')[1], jwtSecret);
        reslove(info);
    })
}
总结
 上面就是jswonwebtoken的全部使用流程,希望可以帮助到你。谢谢