koa2开发的api服务示例,使用用jwt验证。
github代码:https://github.com/yunzaifei/koa2-jwt-demo
安装及部署
- 执行命令npm install
- 执行命令npm start启动服务
- 可以通过postman等工具对服务进行测试,或者通过npm run test命令使用网页页查看
涉及知识点
- koa2框架
- jwt原理及应用
- mongoose应用
- async/await的简单使用
知识点讲解
koa2框架
koa就是一种简单好用的Web框架。它的特点是优雅、简洁、表达力强、自由度高。本身代码只有1000多行,所有功能都通过插件实现,很符合Unix哲学。
koa官网 http://koajs.com/
koa中文文档 https://github.com/guo-yu/koa-guide
koa2进阶学习笔记 https://chenshenhai.github.io/koa2-note/
本示例中涉及的中间件
中间件 | 功能说明 | 链接 | 备注 |
---|---|---|---|
bcrypt | 加密 | 用于用户密码存入数据库时 | |
jsonwebtoken | jwt实现 | ||
kcors | koa跨域 | ||
koa | koa框架 | ||
koa-bodyparser | 数据解析到ctx.request.body中 | 详细 | |
koa-json | response转换位json格式 | ||
koa-jwt | jwt自动校验 | 使用后不用在每个路由下手写校验方法 | |
koa-logger | 日志 | ||
koa-router | 路由 | 详细 | |
mongoose | 操作mongodb数据库 | 文档 |
代码结构说明
本示例代码实现api服务,因为没有页面展示功能,所以没有使用koa-static加载静态资源和创建views视图结构。
启动文件是app.js。
route文件夹是路由服务。
config.js文件记录所有配置信息方便统一管理。
jwt原理及应用
jwt原理
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。注意,在JWT中,不应该在载荷里面加入任何敏感的数据。查看jwt信息:https://jwt.io/
jwt应用
对于jwt的应用,本示例中主要用到jsonwebtoken和koa-jwt两个中间件。koa-jwt是对jsonwebtoken功能的封装,如果想更灵活的实现并且不怕麻烦,可以只使用jsonwebtoken中间件。
jsonwebtoken用法
1 | //jsonwebtoken在服务端生成token返回给客户端 |
koa-jwt用法
1 | //koa-jwt在服务端校验从客户端提交的token值 |
mongoose应用
mongoose文档:http://mongoosejs.com/docs/guide.html
mongoose中文文档:https://mongoose.shujuwajue.com/
async/await的简单使用
Callback、Promise、Generator、async/await对比
原文链接: http://yunzaifei.github.io/2017/09/22/koa2开发的api服务及jwt应用/
版权声明: 转载请注明出处.