2016-02-17 43 views
0

我在MEAN Stack webapp中使用Satellizer登錄用戶。衛星模塊使用JSON Web令牌。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

基本上令牌看起來像字符串。當你改變有效載荷時,你的令牌被改變(新的字符串)。您不能更改標記/有效內容而不更改字符串。您可以根據以前創建一個新的。

記得將新令牌返回給客戶端應用程序。