【问题标题】:strange behavior jsonwebtoken expired error奇怪的行为jsonwebtoken过期错误
【发布时间】:2018-10-19 01:18:49
【问题描述】:

我有一个使用 jsonwebtoken 进行会话管理的 Node.js 应用程序。

但是,令牌过期后,当我想再次访问时,我得到了:

{ TokenExpiredError: jwt expired
    at Object.module.exports [as verify] (/home/ubuntu/me-n-you/node_modules/jsonwebtoken/verify.js:126:19)
    at auth (/home/ubuntu/me-n-you/app_server/routes/index.js:14:9)
    at Layer.handle [as handle_request] (/home/ubuntu/me-n-you/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/ubuntu/me-n-you/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/ubuntu/me-n-you/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/ubuntu/me-n-you/node_modules/express/lib/router/layer.js:95:5)
    at /home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:335:12)
    at next (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:275:10)
    at Function.handle (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:174:3)
    at router (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:47:12)
    at Layer.handle [as handle_request] (/home/ubuntu/me-n-you/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:317:13)
    at /home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:335:12)
    at next (/home/ubuntu/me-n-you/node_modules/express/lib/router/index.js:275:10)
  name: 'TokenExpiredError',
  message: 'jwt expired',
  expiredAt: 2018-05-08T21:14:27.000Z }

我重复得到同样的错误,直到很长一段时间我才能再次访问。

但是,如果同时使用其他设备或浏览器,我可以访问。

我不知道如何解决它。有人对此有任何线索吗?

提前致谢。

理查德·许

【问题讨论】:

    标签: node.js jwt


    【解决方案1】:

    如果你正在使用 bcrypt,你也可以再次登录

    bcrypt.compare(req.body.password, data[0].password, (err, resposne) => {
                if (err) {
                    res.status(500).json(err);
                }
                //response is either true or false
                if (resposne) {
                    const token = jwt.sign({
                        email: data[0].email,
                        userId: data[0]._id
                    }, "secret",
                        {
                              expiresIn: "1h"
                        })
                    return res.status(200).json({
                        message: 'Auth successful',
                        token: token
                    })
                } else {
                    return res.status(401).json({ message: 'Auth failed' })
                }
            })
    

    提高您的有效期

    【讨论】:

    • 我正在使用护照模块。
    猜你喜欢
    • 2017-11-19
    • 2012-11-26
    • 2015-07-27
    • 1970-01-01
    • 2015-12-05
    • 2020-09-02
    • 2012-12-27
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多