【发布时间】:2018-12-28 02:57:54
【问题描述】:
我想验证令牌是否过期,然后发送状态和消息
async function verify () {
const ticket = await client.verifyIdToken({
idToken: req.body.token,
audience: CLIENT_ID
})
const payload = ticket.getPayload()
let email = payload['email']
return User
.findOne({
where: { email: email }
})
.then(user => {
if (!user) {
return next(boom.notFound('User not found'))
}
let token = jwt.sign({user}, config.secret, {
expiresIn: 86400 // expires in 24 hours
})
user.token = token
return res.status(200).send(user)
})
}
verify().catch(console.error)}
我一直在处理 client.isTokenExpiring() 但没有发现错误
【问题讨论】:
-
这是什么类型的令牌?我认为这个问题需要更多的背景来回答。这个函数是签名一个
jwt,但是你还想验证上面的idToken?你能提供更多细节吗? -
我收到一个谷歌令牌并验证该令牌,然后我从谷歌令牌中提取电子邮件并在我的数据库中查找电子邮件,如果存在我与用户生成一个令牌并返回生成令牌的模型用户。但现在我想做的是:如果 google 令牌已过期,请执行以下操作:
res.status(401).json({'err': 'Token has expired'})
标签: node.js express oauth async-await sequelize.js