首页 > 解决方案 > 创建 jwt 验证模块时无法读取未定义的属性“标题”

问题描述

我按照这个视频创建了 jwt 身份验证。https://youtu.be/2jqok-WgelI?t=4284

当我在 1:11:00 尝试使用 verifyToken 模块时出现错误

TypeError:无法读取未定义的属性“标题”

这是我的代码

验证令牌.js

const jwt = require('jsonwebtoken');

module.exports = function(req,res,next) {
    const token=req.header('auth-token');
    if(!token) return res.status(401).send('Access denied');
    try{
        const verified = jwt.verify(token,process.env.JWT_SECRET);
        req.user = verified;
        next();
    }catch (err) {
        res.status(400).send('Wrong token');
    }
};

index.js

const router = require('express').Router();
const info = require('../public/info');
const verify = require('./verifyToken');

//render main page
router.get("/",function (req,res) {
    res.render('index',{
        title:info.title[0],
        content:info.news
    });
});
//try to use verifyToken module here
router.get("/create",verify(),function (req,res,next) {
    res.render('index',{
        title:info.title[1],
        content:info.create
    });
});
//render about page
router.get("/about",function (req,res) {
    res.render('index',{
        title:info.title[2],
        content:info.info
    });
});
//render sign up page
router.get("/signup",function (req,res) {
    res.render('register');
});
//render login page
router.get("/login",function (req,res) {
    res.render('login');
});


module.exports=router;

标签: node.jsexpressjwt

解决方案


您可以尝试在路由器获取方法参数中添加验证的函数回调指针,即Without (),如视频中所示:

   router.get("/create", verify ,function (req,res,next) {
       res.render('index',{
          title:info.title[1],
          content:info.create
       });
   });

推荐阅读