【koa2】使用token
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相关推荐
- 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...
- koa2+vue实现登陆以及是否登陆控制
这里我们先说说登陆以及登陆状态控制需要的插件jsonwebtoken,jsonwebtoken就可以实现token的生成与反向解密出用户数据.安装步骤: npm install jsonwebtoke ...
- koa2 mysql增删改查_react+koa2+mysql零门槛的全栈体验,附上完整项目分享
写在前面 本文适用于对后端开发领域较为陌生的初级前端开发小伙伴,如果你想一个人搞定一整个项目(服务端接口定义开发+前端页面渲染+数据库搭建+服务器搭建+部署上线),希望这篇文章能给你带来一点点参考价值 ...
- 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。
#基于webpack构建的 Koa2 restful API 服务器脚手架 这是一个基于 Koa2 的轻量级 RESTful API Server 脚手架,支持 ES6, 支持使用TypeScript ...
- cli3解决 ie11语法错误 vue_基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册...
项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...
- koa2 仿知乎笔记
Koa2 仿知乎笔记 路由 普通路由 const Router = require("koa-router") const router = new Router()router. ...
- vue.js koa2 mysql_nodejs-koa2-mysql-sequelize-jwt
一.项目介绍 完整的一套个人博客网站 技术栈: 服务端:Nodejs,框架Koa2 前端和后台模板:Vue.js 数据库:MySQL 完整包含技术:Node.js, Koa2, MySQL, Sequ ...
- koa2 mysql_koa2+vue+mysql 全栈开发记录
koa2+vue2+mysql 全栈开发记录 基于想要自己制作一个个人项目为由,于是有了这么一个开发记录(梳理开发过程也是一个知识巩固的过程) koa2+vue2+mysql 个人的一个通用DEMO( ...
- koa2 mysql sequelize_使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
nodejs-koa2-mysql-sequelize-jwt 技术栈:nodejs, koa2, mysql, sequelize, jwt 项目数据层和操作层分明 使用koa2框架中间件,参数处理 ...
最新文章
- 如何使python print输出不换行
- win7 IIS7.5配置伪静态
- Mysql安装注意问题
- [转]VS2008中开发智能设备程序的一些总结
- mysql主外键引用关系,关于mysql:数据主/外键关系
- css布局:块级元素的居中
- HR要我薪资流水,可我多报了怎么办?
- y空间兑换代码_【CV学习笔记】色彩空间
- 使用windows crypto API加密解密
- javaee 与mysql留言簿_基于jsp的留言板系统-JavaEE实现留言板系统 - java项目源码
- 不同VLAN中的计算机可以ping通吗,不同vlan间互相能ping通配置.ppt
- linux 网络速度非常慢,Linux认证:解决ubuntu8.10上网速度慢的问题
- android技术篇(三)解密data区
- Android 自定义View
- c语言实现utf-8编码解码器
- 阿里实习生java面试
- 150行Python代码模拟太阳系行星运转
- 离散数学真值表(c语言编程实现),C语言 实现离散数学合式公式真值表
- C++读书笔记之this指针的用法
- 数字图像处理之matlab实验(五):形态学图像处理