express.js--token中间件验证及token解析(三)

主要作用

访问路由接口时,哪些需要校验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

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值