1.新建一个jwttest.router.js
引入toast
const {success,fail} = require("../toast");
const jwt = require("jsonwebtoken");
const key="web";
module.exports = function (router){
router.post("/login",async ctx=>{
const {name,pwd} = ctx.request.body;
if(name==="admin" && pwd==="123456"){
const token = jwt.sign({name:"admin"},key,{expiresIn:300})
return success(ctx, "Bearer " + token);
}else{
return fail(ctx,"账号和密码不正确");
}
}).get("/data",async ctx=>{
return success(ctx,{});
})
};
在app.js中引入jwttest
// 引入类
const Koa =require('koa');
// 引入koa-router
const Router =require('koa-router');
// 引入koa-body
const koaBody=require('koa-body');
const tagRouter =require("./routers/tag.router");
const userRouter =require("./routers/user.router");
const contentRouter =require("./routers/content.router");
const jwtRouter =require("./routers/jwttest.router");
const {fail} = require("./toast");
const jwt = require("jsonwebtoken");
const key="web";
// 创建对象
const app =new Koa();
app.use(koaBody({
strict:false
}));
app.use(async (ctx,next) =>{
const exp = [
'/login',
'/',
'register',
]; //不需要验证的地址
if(exp.includes(ctx.url)){
await next();
return;
}
console.log(ctx.headers)
const authorization = ctx.headers.authorization;
if(!authorization){
return fail(ctx,"请添加 token 信息");
}
const token = authorization.split(' ')[1];
try{
const user =jwt.verify(token,key);
if(user.name==="admin"){
await next();
}else{
return fail(ctx,"权限不足");
}
}catch(error){
return fail(ctx,error);
}
})
const router =new Router({// 可以传递参数配置路由前缀
});
tagRouter(router);
userRouter(router);
contentRouter(router);
jwtRouter(router);
app.use(router.routes());
app.use(router.allowedMethods({
}));
// localhost:3000
app.listen(8000,()=>{
console.log("http://localhost:8000");
});
最后通过text.http查看是否显示正确
@url =http://localhost:8000
@json=Content-Type: application/json
@auth=Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYWRtaW4iLCJpYXQiOjE2Mzg1MjA5MDAsImV4cCI6MTYzODUyMTIwMH0.PAvCI6TsrzYs7_P4e4v_ieLlLJY-iT0ro42oTYFhV1Q
### 登录
POST {{url}}/login
{{json}}
{
"name":"admin",
"pwd":"123456"
}
### 获取数据
GET {{url}}/data
{{auth}}
### 查询
GET {{url}}/tag
{{auth}}
### 添加
POST {{url}}/tag
{{auth}}
{{json}}
#content
//表单方式
# id=1000&name="张三"
{
"text":"6234"
}
### 删除
DELETE {{url}}/tag
{{auth}}
{{json}}
{
"_id":"61a887ada8457be730ee21d6"
}
### content 查询
GET {{url}}/content
{{auth}}
### content 添加
POST {{url}}/content HTTP/1.1
{{auth}}
{{json}}
{
"title":"孤独的根号三",
"content":"一个孤独的根号三七八九"
}
### 删除
DELETE {{url}}/content
{{auth}}
{{json}}
{
"_id":"61a889f2116f2745d91ff7e6"
}
### 修改
PUT {{url}}/content?_id=61a88dcf1509ffac77824c93
{{auth}}
{{json}}
{
"top":"true"
}
### user 查询
GET {{url}}/user HTTP/1.1
{{auth}}
### user 添加
POST {{url}}/user HTTP/1.1
{{auth}}
{{json}}
{
"name":"小明",
"password":"12233yfr",
"email":"1637743640@qq.com",
"namegrop":"限制会员"
}
### user删除
DELETE {{url}}/user
{{auth}}
{{json}}
{
"_id":"61a88c540d6c4ff5952338c6"
}
### user修改
PUT {{url}}/user?_id=61a88df389ca9f8a670616ef
{{auth}}
{{json}}
{
"name":"小红"
}
- easyui+nodejs+sqlserver增删改查实现
用到的模块或者技术: Express: http://www.expressjs.com.cn/4x/api.html#express Easyui: http://www.jeasyui.com/d ...
- nodejs+express+mysql 增删改查
之前,一直使用的是nodejs+thinkjs来完成自己所需的项目需求,而对于nodejs中另外一中应用框架express却了解的少之又少,这两天就简单的了解了一下如何使用express来做一些数据库 ...
- nodejs+express+mysql实现restful风格的增删改查示例
首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...
- nodejs+express+mysql 增删改查(二)
1.最早一篇关于express框架简单的增删改查文章,http://www.cnblogs.com/zhengyeye/p/nodejs.html#3947308:意外走红博客园,无奈自己之前一直没有 ...
- nodejs对mongodb数据库的增删改查操作(转载)
首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...
- 进入全屏 nodejs+express+mysql实现restful风格的增删改查示例
首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...
- 69.nodejs对mongodb数据库的增删改查操作
转自:https://www.cnblogs.com/sexintercourse/p/6485381.html 首先要确保mongodb的正确安装,安装参照:http://docs.mongodb. ...
- 使用nodejs连接mysql数据库实现增删改查
首先要有数据库 使用xampp 或者 phpstudy 可以傻瓜式安装 新建一个项目文件夹 之后在这个目录下初始化package.json (npm init) 先在项目中安装mysql 和 ex ...
- 基于nodejs+express+mysql+webstorm+html的 增删改查
一.工具准备 Nodejs框架,WebStorm.Mysql服务.Navicat.此篇文章只讲项目的搭建过程,至于Nodejs,WebStorm.Mysql的下载.安装与配置网上资源很多,请自行查阅, ...
- 简单实现 nodejs koa2 mysql 增删改查 制作接口
1.首先 在电脑上安装 nodejs (此处略过) 2.全局安装 koa2 (这里使用的淘宝镜像cnpm,有兴趣的同学可以自行搜索下) cnpm install koa-generator -g 3. ...
随机推荐
- js单线程工作
http://www.ruanyifeng.com/blog/2014/10/event-loop.html#comment-390185
- macOS NSView改变frame后会出现黑色残留,应付的办法是不在drawRect上修改重新initWithFrame一下就行
黑色部分就是残留.是因为绘制后保留了轨迹. 解决办法是不在drawRect中做处理重新写NSView,新增方法 initWithFrame - (void)drawRect:(NSRect)dirty ...
- 对mvc模式的理解
Model-View-Controller MVC模式是个威力强大的复合模式,是由数个设计模式结合起来的模式: 我们先看一下一个mp3播放器的设计,来由浅至深地了解这个设计模式的精髓所在: 从最直观的 ...
- win10格式化U盘提示没有权限执行此操作
解决办法参考:http://www.tpbz008.cn/post/766.html 1.gpedit.msc 2.展开计算机配置,管理模板.展开系统.选中可移动存储访问 3.所有可移动存储类:拒绝所 ...
- UltiSnips安装及设置
2022-10-05 10:56:50 星期三 安装了UltiSnips插件,然后开始学习 第一个命令 UltiSnipsEdit 不好使,创建了~/.vim/UltiSnips 还是 can not ...
- ID生成器实现方式的优缺点比较以及最优的ID生成器原理剖析
引用:https://blog.csdn.net/luoyang_java/article/details/90679456 本文的重点主要是ID发号器相关的知识,介绍了雪花算法,以及他的基本原理和实 ...
- .net基础—委托和事件
委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用. 在实例化委托时,可以将其实例与任何具有兼容签名和返回类型的方法相关联. 可以通过委托实例调用方法.可以将任何可访问类或结构中与 ...
- 1238. 循环码排列 (Medium)
问题描述 1238. 循环码排列 (Medium) 给你两个整数 n 和 start.你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p,并且满足: p[0] = start p[i ...
- Cloudflare.com设置域名URL转发
1.登录Cloudflare.com,将语言设置为简体中文,并选择需要设置URL转发的域名. 2.选择域名,需先对域名进行解析,解析地址随便填写,可以填写CloudFlare官方提供的DNS服务器地址 ...
- 进程间通信-信号-pipe-fifo
一.实验截图 (一)fifo (二)pipe (三)signal 二.实验代码 fifo //consumer #include <stdio.h> #include <stdlib ...