主要作用
访问路由接口时,哪些需要校验token
通过token解析身份信息,就可以知道是哪个人
框架基本搭建express.js--基本用法及路由模块化(一)-CSDN博客
如何生成tokenexpress.js--生成token(二)-CSDN博客
middleware/index.js
const jwt = require('jsonwebtoken');
const { app } = require('../config');
/* 解析token 获取用户信息 */
const decodeToken = (token) => {return jwt.verify(token, app.jwtSecret);
}
/* token信息校验 */
const checkToken = (req, res, next) => {//判断是否存在tokenif (!req.headers.authorization) {return res.status(401).json({code: 401,msg: "请登录"})} else {//判断jwt是否正确或者是否过期jwt.verify(req.headers.authorization, app.jwtSecret, (err, decoded) => {if (err) {return res.status(401).json({code: 401,msg: "token错误或过期"})}next()})}
}
module.exports = {decodeToken,checkToken
}
routes/user.js
const router = require("express").Router()
const { register } = require("../controller/User")
const { checkToken, decodeToken } = require("../middleware")
//登录
router.post("/login", register)
//签到
router.post("/sign", checkToken, (req, res) => {let user = decodeToken(req.headers.authorization)console.log(user);res.send({code: 200,data: [],msg: "签到成功",});
})
//修改个人信息
router.post("/update", (req, res) => {res.send({code: 200,data: [],msg: "修改成功",});
})
module.exports = router