1. 安装

npm install jsonwebtoken --save

2. 登录成功签发token

理解: 登录时通过数据库验证用户名和密码是否正确,若正确返回 token,否则提示错误

routes/user.js

// routes/user.js
const jwt = require("jsonwebtoken");
const { SECRET_KEY } = require("../utils/cryp");router.prefix("/api/users");router.post("/login", async (ctx, next) => {const { username, password } = ctx.request.body;const data = await login(username, password);const id = data.id;// Token 数据const payload = {username,id,};// 签发 Tokenconst Token = jwt.sign(payload, SECRET_KEY, { expiresIn: "1day" });if (!data) {ctx.body = {code: 400,msg: "登录失败",};return;}ctx.body = {code: 200,msg: "登录成功",data,Token,};
});

3. 验证 token 中间件

utils/checkToken.js

// utils/checkToken.js
const jwt = require("jsonwebtoken");
const { SECRET_KEY } = require("../utils/cryp");const checkToken = async (ctx, next) => {const url = ctx.request.url;if (url == "/api/users/login") {await next();} else {const token = ctx.request.header.token;try {jwt.verify(token, SECRET_KEY);await next();} catch (error) {console.log(error);}}
};module.exports = checkToken;

4. app.js中使用中间件

const checkToken = require("./utils/checkToken");
app.use(checkToken);

不忘初心

参考链接:
https://blog.csdn.net/weixin_43801907/article/details/105310324
https://github.com/auth0/node-jsonwebtoken

【koa2】使用token相关推荐

  1. 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册

    项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...

  2. koa2+vue实现登陆以及是否登陆控制

    这里我们先说说登陆以及登陆状态控制需要的插件jsonwebtoken,jsonwebtoken就可以实现token的生成与反向解密出用户数据.安装步骤: npm install jsonwebtoke ...

  3. koa2 mysql增删改查_react+koa2+mysql零门槛的全栈体验,附上完整项目分享

    写在前面 本文适用于对后端开发领域较为陌生的初级前端开发小伙伴,如果你想一个人搞定一整个项目(服务端接口定义开发+前端页面渲染+数据库搭建+服务器搭建+部署上线),希望这篇文章能给你带来一点点参考价值 ...

  4. 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。

    #基于webpack构建的 Koa2 restful API 服务器脚手架 这是一个基于 Koa2 的轻量级 RESTful API Server 脚手架,支持 ES6, 支持使用TypeScript ...

  5. cli3解决 ie11语法错误 vue_基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册...

    项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...

  6. koa2 仿知乎笔记

    Koa2 仿知乎笔记 路由 普通路由 const Router = require("koa-router") const router = new Router()router. ...

  7. vue.js koa2 mysql_nodejs-koa2-mysql-sequelize-jwt

    一.项目介绍 完整的一套个人博客网站 技术栈: 服务端:Nodejs,框架Koa2 前端和后台模板:Vue.js 数据库:MySQL 完整包含技术:Node.js, Koa2, MySQL, Sequ ...

  8. koa2 mysql_koa2+vue+mysql 全栈开发记录

    koa2+vue2+mysql 全栈开发记录 基于想要自己制作一个个人项目为由,于是有了这么一个开发记录(梳理开发过程也是一个知识巩固的过程) koa2+vue2+mysql 个人的一个通用DEMO( ...

  9. koa2 mysql sequelize_使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口

    nodejs-koa2-mysql-sequelize-jwt 技术栈:nodejs, koa2, mysql, sequelize, jwt 项目数据层和操作层分明 使用koa2框架中间件,参数处理 ...

最新文章

  1. 如何使python print输出不换行
  2. win7 IIS7.5配置伪静态
  3. Mysql安装注意问题
  4. [转]VS2008中开发智能设备程序的一些总结
  5. mysql主外键引用关系,关于mysql:数据主/外键关系
  6. css布局:块级元素的居中
  7. HR要我薪资流水,可我多报了怎么办?
  8. y空间兑换代码_【CV学习笔记】色彩空间
  9. 使用windows crypto API加密解密
  10. javaee 与mysql留言簿_基于jsp的留言板系统-JavaEE实现留言板系统 - java项目源码
  11. 不同VLAN中的计算机可以ping通吗,不同vlan间互相能ping通配置.ppt
  12. linux 网络速度非常慢,Linux认证:解决ubuntu8.10上网速度慢的问题
  13. android技术篇(三)解密data区
  14. Android 自定义View
  15. c语言实现utf-8编码解码器
  16. 阿里实习生java面试
  17. 150行Python代码模拟太阳系行星运转
  18. 离散数学真值表(c语言编程实现),C语言 实现离散数学合式公式真值表
  19. C++读书笔记之this指针的用法
  20. 数字图像处理之matlab实验(五):形态学图像处理

热门文章

  1. python导出dxf图_利用Dxfwrite/ezdxf操作CAD文件!
  2. 我的钱去哪了?当卡被盗刷以后。。。
  3. python eval函数的神奇魔法
  4. QT获取显示当前时间和日期
  5. 区块链(一): 以太坊基础知识
  6. SpringCloud_第2章_入门到精通_Nacos+Feign+Gateway
  7. UI 设计小白入门论
  8. 电脑中没有显示网络连接到服务器地址,电脑没有网络可以连接到服务器地址
  9. 微信小程序text控件部分字体文字大小和颜色设置四
  10. 2012最具有技术影响力本版图书评选