首页 > 解决方案 > 在 node.js 应用程序中呈现页面之前解码 JWT cookie 和密码时出错

问题描述

下面是解码 jwt 令牌和密码的代码......我正在检查用户是否仍然登录,因为我在渲染页面之前放置了这个代码

exports.isLoggedIn = async(req,res,next) => {
    // console.log(req.cookies);
    if(req.cookies.jwt){
        
        try{
            //1)Verify the user
            const decoded = await promisify(jwt.verify(req.cookies.jwt,process.env.JWT_SECRET));
            console.log(req.cookies.jwt);
            console.log(process.env.JWT_SECRET);
            //verify if user still exist
            db.query('SELECT * FROM users WHERE id = ?', [decoded.User_ID],(error,result) =>{
                console.log(result);
            })
        } catch(error){
            // console.log(error)
        }
    }
    next();
}

我得到以下错误

TypeError [ERR_INVALID_ARG_TYPE]: The "original" argument must be of type Function. Received type object
    at promisify (internal/util.js:256:11)
    at exports.isLoggedIn (/Users/ruchir/Documents/Assesment_Node/controllers/auth.js:121:35)
    at Layer.handle [as handle_request] (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/layer.js:95:5)
    at /Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/index.js:275:10)
    at Function.handle (/Users/ruchir/Documents/Assesment_Node/node_modules/express/lib/router/index.js:174:3)

标签: node.js

解决方案


推荐阅读