三、从零模拟新浪微博-jwt示例
koa2中使用jwt生成TOKEN
安装插件
yarn add koa-jwt jsonwebtoken注册中间件
const jwtKoa = require('koa-jwt') // jwt app.use( jwtKoa({ secret: SECRET }).unless({ path: [/^\/users\/login/] // 定义那些目录忽略jwt验证 }) )SECRET是一个加密的密钥,字符串类型。在登录成功后返回token
const jwt = require('jsonwebtoken') const { SECRET } = require('../conf/constants') let token if (userInfo) { token = jwt.sign(userInfo, SECRET, { expiresIn: '1h' }) }
Koa2中获取token中的用户信息
在请求时在请求头加入字段
Authorization,值为token值Bearer [TOKEN]获得token的信息
// 获取用户信息 router.get('/getUserInfo', async function (ctx, next) { const token = ctx.header.authorization // 也可以获得session解密后的信息 console.log(ctx.state) // 手动对jwt解密 try { const payload = await verify(token.split(' ')[1], SECRET) ctx.body = { errno: 0, userInfo: payload } } catch (ex) { ctx.body = { errno: 0, msg: 'verify token failed' } } })
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooDisqusjs









