koa2 中 koa-jwt 的使用

Posted 链乎社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了koa2 中 koa-jwt 的使用相关的知识,希望对你有一定的参考价值。



koa-jwt可以验证使用JSON Web Tokens的http 请求。另外基于koa2的koa-jwt去掉了对sign,verify和decode函数的支持。

引入koa-jwt

//koa-jwt 中间件
npm install -S koa-jwt

//生成token
npm install -S jsonwebtoken

生成token

通过 sign 方法生成token。
jwt.sign(payload, secretOrPrivateKey, [options, callback])

  • payload 可以设置为对象或字符串。

  • secretOrPrivateKey secret的key

const token = require('jsonwebtoken')

token.sign({ id: 123 }, 'A very secret key')

koa2 中 koa-jwt 的使用

访问 http://localhost:3000/page/404  运行结果:

koa2 中 koa-jwt 的使用

token验证

给 /helloworld 加入jwt 验证,当你访问/helloworld 的时候就会自动进行jwt验证

get('/helloworld', jwt({
    secret: 'A very secret key', // Should not be hardcoded
}), async(ctx) => {
    ctx.body = 'helloworld page!'
})

如果访问 /helloworld 的时候,没有在header中传入 Authentication 的值,就会出现 Authentication Error 错误,如果传入 Authentication ,可以出现 helloworld page!

//Authorization 的值是Bearer <token>
Authorization

Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYWRtaW4iLCJpYXQiOjE1MDA0NTgwNTR9.1SDdj8-i2s-BJL5hWVr3CzC80TFhntSobUpSAnH2OVc

koa2 中 koa-jwt 的使用

获取加密字符串中的对象

加密验证通过后可以通过 ctx.state.user 获取之前加密时传递的对象。

console.log("ctx.state.user:" + JSON.stringify(ctx.state.user));

打印结果:

ctx.state.user:{"id":123,"iat":1500518231}

查看源码: https://github.com/didianV5/node-study/tree/master/jwtTest


全栈部落 区块链部落
koa2 中 koa-jwt 的使用 koa2 中 koa-jwt 的使用



扫描二维码

加入全栈部落


以上是关于koa2 中 koa-jwt 的使用的主要内容,如果未能解决你的问题,请参考以下文章

koa2-6

微信小程序全栈开发课程课程目录(mpvue+koa2+mysql)

iKcamp|基于Koa2搭建Node.js实战(含视频)? 代码分层

用koa2.x写下载漫画的爬虫

使用Koa2搭建web项目

Vue.js+Koa2移动电商实战-1