Почему не продлевается время токена?

393
06 января 2017, 11:40

Здравствуйте, есть такой код:

async.waterfall([
     function(done){
          User.findById(verifiedJwt.body.sub, function(err, user) {
              if (err)  return next(err);
              if (!user) return res.status(401).json({ error: 'Incorrect token credentials' });
              req.user = user;
              done(null);
          });
     }
],
function(err){
     if (err) return next(err);
     verifiedJwt.setExpiration(new Date().getTime() + (60*60*1000));
     return next();
});

Этот код вызывается при переходе пользователя по одному из маршрутов, и отвечает за то, что продлевает время жизни токена. Само продление жизни токена происходит тут

verifiedJwt.setExpiration(new Date().getTime() + (60*60*1000));

И если верить документации модуля, то все должно срабатывать. Но на практике это не происходит.

UPDATE Переделал все под модуль jsonwebtoken.

    jwt.verify(token, secrets.sessionSecret, function (err, verifiedJwt) {
        if (err){
            if (err.message === 'jwt expired'){
                req.user = null;
                console.log(err);
                return res.redirect('/login');
            }
            return res.redirect('/login');
        }
        async.waterfall([
                function(done){
                    User.findById(verifiedJwt.data, function(err, user) {
                        if (err)  return next(err);
                        if (!user) return res.status(401).json({ error: 'Incorrect token credentials' });
                        req.user = user;
                        done(null);
                    });
                }
            ],
            function(err){
                if (err) return next(err);
                console.log("before", verifiedJwt);
                verifiedJwt.exp = Math.floor(Date.now() / 1000) + (60*60);
                console.log("after",verifiedJwt);
                return next();
            });
    });

Время жизни токена меняю так:

    function(err){
        if (err) return next(err);
        console.log("before", verifiedJwt);
        verifiedJwt.exp = Math.floor(Date.now() / 1000) + (60*60);
        console.log("after",verifiedJwt);
        return next();
    });

Но по факту оно не обновляется..

READ ALSO
События в календаре по датам из внешнего файла

События в календаре по датам из внешнего файла

Имеем из просторов интернета такой вот календарь:

385
Vue JS 2 связь компонентов, и доступ к data

Vue JS 2 связь компонентов, и доступ к data

Как связать компоненты и получить доступ к dataВ проекте использую vue-route

1037
“Код” музыкальных файлов

“Код” музыкальных файлов

Я хочу попробовать создать программу для создания/редактирования какой-либо музыкиЧисто в образовательных целях я хочу узнать как работать...

304
Angularjs 2 и jquery

Angularjs 2 и jquery

Как правильно подключить jQuery к проекту на AngularJS 2?

334