【问题标题】:nodejs how to verify the token?nodejs如何验证令牌?
【发布时间】:2021-10-11 03:51:39
【问题描述】:

如何验证令牌?这是我已经完成的,这是我收到的错误

router.get('/user/ApplicationAccess/:intapplicationid/:intuserid/:token', UsersApplicationAccess);

async function UsersApplicationAccess(req, res, next){
   
    params = req.params;

    console.log(params);

    let validation_rules = {
        intapplicationid: 'required',
        intuserid: 'required',
        token: 'required'
    };

    let validation = new Validator(params, validation_rules);
    console.log("params", params);

    if(validation.passes())
    {
        try
        {
            const decoded = jwt.verify(params.token, pem, { algorithms: ['RS256'] }, function(err, decodedToken) {
                let results = await Access.ApplicationAccess(params);
                //console.log("results: ", results)
                res.status(200).json(results.rows);
            });

        }catch(err){
            console.log("-----result data error-----\n", err);
            res.status(500).json(err);
        }
    }else{
        res.status(400).json(validation.errors);
    }

}

错误

让结果 = 等待 Access.ApplicationAccess(params); ^^^^^

SyntaxError: await 仅在异步函数和顶层有效 模块主体

【问题讨论】:

    标签: node.js express jwt


    【解决方案1】:

    将此函数更改为异步:

    async function(err, decodedToken) {
      let results = await Access.ApplicationAccess(params);
      //console.log("results: ", results)
      res.status(200).json(results.rows);
    }
    

    或者你也可以这样做:

    function(err, decodedToken) {
      Access.ApplicationAccess(params).then(results => {
        res.status(200).json(results.rows);
      });
    }
    

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 2016-02-07
      • 2019-09-14
      • 2013-06-28
      • 2020-12-07
      • 2018-01-28
      • 2019-12-01
      • 1970-01-01
      • 2017-06-22
      相关资源
      最近更新 更多