jwt中过期时间使得程序报错不往下走

发布于 2022-09-07 23:06:18 字数 964 浏览 26 评论 0

我使用until的promisify 把jwt中的verify变为同步的,当我调用这个函数传入一个过期的token时,他报错了,程序不往下走了!!!

const util = require('util');
const verify = util.promisify(jwt.verify)
async getToken (cookieStr){
    return  verify(cookieStr.replace(/(^\s*)|(\s*$)/g, ""), 'screct').then(function(res){
        return res
    }).catch(function(err){
        return false
    })
}
let PAYLOAD= await getToken(ctx.header.authorization)
erver error { TokenExpiredError: jwt expired
    at E:\demo\node_modules\_jsonwebtoken@8.3.0@jsonwebtoken\verify.js:141:21
    at getSecret (E:\demo\node_modules\_jsonwebtoken@8.3.0@jsonwebtoken\verify.js:76:14) }
我使用回调它却是好使的。
jwt.verify(cookieStr, this.sign, function (err, decode) {
    if (err) {  //  时间失效的时候/ 伪造的token          
       rs.json({err:err})
    } else {
        rq.decode = decode; 
        console.log(decode.msg);   // today  is  a  good  day
        next();
    }
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文