2014-11-02 2 views
0

Я использую модуль jsonwebtoken в npm, и я пытаюсь закончить токен, но кажется, что он не истекает. Вот мой код:Как я могу истечь jwt в узле js?

app.post('/token', function(req, res) { 
    name = 'Name' 
    var token = jwt2.sign(name, secret, { expiresInMinutes: 5 }); 
    res.end(token); 
}); 

Я использую этот маркер позже здесь:

app.post('/feed', function(req, res) { 
    console.log('hiiiiii'); 
    token = req.body.token; 

    console.log('access-token :' + token); 
    jwt2.verify(token, 'secret', function(err, decoded) { 
    if (err) { 
     err = { 
     name: 'TokenExpiredError', 
     message: 'jwt expired', 
     expiredAt: 1408621000 
     } 
     console.log(err.name); 
    } else { 
     console.log('decoded token:' + decoded); 
     res.end(decoded); 
    } 
    }); 
}); 

ответ

0

Вот минимальный тестовый пример, чтобы показать пример его работы по назначению:

'use strict'; 
var jwt = require('jsonwebtoken'); 

var token = jwt.sign({ foo: 'bar' }, 'shhhhh', { expiresInMinutes: 1}); 

console.log(token); 

setTimeout(function() { 
    jwt.verify(token, 'shhhhh', function(err, decoded) { 
     if(err) { 
      console.error('err: ', err); 
     } else { 
      console.log('decoded: ', decoded); 
     } 
    }); 
}, 1000 * 62); 

При выполнении этого контрольный образец я получаю следующий выход:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmb28iOiJiYXIiLCJpYXQiOjE0MTQ5Mzk5MTYsImV4cCI6MTQxNDkzOTk3Nn0.O5zrNrkrhPk_2RekdRwm-nTbHvDIWhsjf_uSWLPfdJQ 
    err: { [TokenExpiredError: jwt expired] 
    name: 'TokenExpiredError', 
    message: 'jwt expired', 
    expiredAt: Sun Nov 02 2014 09:52:56 GMT-0500 (EST) } 

Вы подписываете токен с переменным секретом, проверяя его строкой «секрет». Может ли это быть проблемой?

+0

да, я думаю, это была моя ошибка! Спасибо!! :) –

+0

Как проверить, истекло ли это или нет? Я хочу отправить ответ, если токен еще не истек. –

+0

Отправьте ответ, если нет ошибки. – rtucker88

Смежные вопросы