2015-03-05 5 views
1

Я использую jsonwebtoken пакет для Node.js:jsonwebtoken не истекает

Создание маркера подобного:

var token = jwt.sign(user, tokenSecret, {expiresInMinutes: 1}); 

Верификация так:

jwt.verify(token, tokenSecret, function(err, decoded) { 
    if(err) return done(new Error('Invalid authentication!')); 
    if(!decoded) return done(null, false); 

    return done(null, decoded, { scope: 'all'}); 
}); 

Однако мой маркер никогда не истекает (я ждал несколько минут между «запросами»).

+0

Привет, вы можете показать некоторые примеры токенов, pls – siavolt

+0

Конечно. См. Обновление. – mosquito87

+0

Интересно, что в теле нет поля iat. И аккуратно, токен содержит пароль hash – siavolt

ответ

4

Хорошо, у меня есть идея, попробуйте создать пользовательский объект перед созданием токена. Что-то вроде этого:

db.user.find(query, function(user){ 
    var userInfo = { 
     id: user.id, 
     name: user.name, 
     role: user.role 
    } 

    return jwt.sign(userInfo, tokenSecret, {expiresInMinutes: 1}); 
}) 
+0

Спасибо большое. Это сделал трюк. И, конечно же, я изменил «формат» моего токена, содержащий только не относящуюся к безопасности/конфиденциальности информацию. – mosquito87

+0

Greate, используйте JWT Это действительно классный стандарт, goodluck! – siavolt

+0

О, мой ..... я долгое время копался в источнике с помощью узла-отладки, чтобы понять, почему он не работал. Ответы, подобные этому, являются причиной того, что im все еще кодирует сегодня, спасибо, брату – Radioreve

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