node.js - 创建 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;
解决方案
您可以尝试在路由器获取方法参数中添加验证的函数回调指针,即Without (),如视频中所示:
router.get("/create", verify ,function (req,res,next) {
res.render('index',{
title:info.title[1],
content:info.create
});
});
推荐阅读
- python - 在 Flask 中上传文件时,`if file` 检查什么
- arduino - 插入特定 SD 卡时 w5100 Shield 无法初始化以太网
- php - 如何使用邮递员向该脚本发送请求
- javascript - 出于某种原因,post 方法对我不起作用
- rest - 使用 Power BI 的 Rest Api 连接到自己的云的最佳方式?
- flutter - 交错网格视图 Flutter onTap 在我的代码中无法处理磁贴
- add - 我无法在 git 存储库中添加文件
- java - 打印当前在 Java 中运行的所有线程的所有堆栈跟踪
- mysql - 如何根据 SQL 中单行中的列的条件创建多行
- kubernetes - 谁能澄清您可以在 azure AKS 中为其他命名空间指定 KUBERNETES_SERVICE_HOST 的位置吗?Kube-system 是正确的,其他命名空间不是