【发布时间】:2018-07-11 11:09:12
【问题描述】:
我在我的节点 js 应用程序中使用 JWT 令牌进行身份验证,当生成新令牌时,我在 DB 中使用字段 custid、token、sessionValid(boolean) 进行更新。
现在我已将令牌到期时间设置为 5 分钟。因此,一旦令牌到期,它应该会自动更新数据库记录并将 sessionValid 设置为 false。这里我有一个更新数据库的休息调用。这样做的原因方法是我实现 SSO,而其他应用程序将使用相同的休息调用进行会话验证。
下面是我如何生成令牌的代码
var isExpired = false;
router.post('/auth', passport.authenticate(
'local', {
session: false
})generateToken, inserttoken,respond);
function generateToken(req, res, next) {
token = jwt.sign({
id: req.user.id,
},SECRET, {
expiresIn: 5 * 60
});
req.token = token;
next();
}
function inserttoken(req,res,next){
//In this function Im doing rest call to update the db with the token generated
}
function respond(req, res) {
res.cookie('customerid', req.user.id, { expires: new Date(new Date().getTime()+1*60*
1000),httpOnly: true })
res.cookie('token', req.token, { expires: new Date(new Date().getTime()+1*60*
1000), httpOnly: true })
res.status(200).json({
user: req.user,
token: req.token
});
}
那么,当令牌过期时,我怎样才能自动进行休息调用并更新数据库。我什至也将这些保存在我的 cookie 中。
任何帮助表示赞赏。谢谢!
【问题讨论】:
标签: javascript node.js jwt