2016-02-17 3 views
0

Я использую Satellizer в своем MEAN Stack webapp для входа в систему. Модуль сателлитатора использует JSON Web Tokens.JWT Обновление полезной нагрузки от node.js

Маркер создан в:

var jwt = require('jwt-simple'); 

function createJWT(user) { 
    var payload = { 
    sub: user._id, 
    user: { 
      displayName: user.displayName, 
      email: user.email, 
      admin: user.admin 
     }, 
    iat: moment().unix(), 
    exp: moment().add(2, 'hours').unix() 
    }; 
    return jwt.encode(payload, config.TOKEN_SECRET); 
} 

app.post('/auth/login', function(req, res) { 
    User.findOne({ email: req.body.email }, '+password', function(err, user) { 
    if (!user) { 
     return res.status(401).send({ message: 'Wrong email and/or password' }); 
    } 
    user.comparePassword(req.body.password, function(err, isMatch) { 
     if (!isMatch) { 
     return res.status(401).send({ message: 'Wrong email and/or password' }); 
     } 
     res.send({ token: createJWT(user) }); 
    }); 
    }); 
}); 

Дело в том, что в конце функции, мне нужно обновить ключ пользователя внутри объекта полезной нагрузки.

Возможно ли это?

ответ

0

В основном токен выглядит как строка. когда вы меняете полезную нагрузку, ваш токен изменяется (новая строка). Вы не можете изменить токен/полезную нагрузку без изменения строки. Вы можете создать новый, основанный на предыдущем.

Не забудьте вернуть новый токен в клиентское приложение.