странное поведение jsonwebtoken expired ошибка - PullRequest
0 голосов
/ 09 мая 2018

У меня есть приложение Node.js, которое использует jsonwebtoken для управления сеансами.

Однако после истечения срока действия токена, когда я хочу снова получить доступ, я получил:

{ 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 }

Я повторяю, чтобы получить те же ошибки до тех пор, пока я не смогу получить доступ снова.

Но я могу получить доступ, если одновременно использую другое устройство или браузер.

Понятия не имею, как это исправить. У кого-нибудь есть какие-либо подсказки по этому поводу?

Спасибо заранее.

Ричард Сюй

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете снова войти в систему, также если вы используете 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' })
            }
        })

Увеличение лимита истечения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...