主要作用
访问路由接口时,哪些需要校验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) => {
//判断是否存在token
if (!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