【发布时间】:2019-08-09 13:52:49
【问题描述】:
我已经创建了 node.js 后端。在登录时,我正在发送一个 jwt 令牌。为了用户体验,我不希望他们重新登录,而是刷新他们的令牌,我已将其设置为 4 小时后过期。
但是,我没有很好地了解如何有效地做到这一点。我的想法是在客户端提供一个按钮,通过单击哪个用户可以刷新他们的令牌。假设我可以从客户端打一个休息电话,我需要帮助来实现它。欣赏它。
if (response) {
bcrypt.compare(req.body.password, response.password, (error, result) => {
if (result) {
const token = jwt.sign(
{
email: response.email,
userId: response._id
},
process.env.JWT_KEY,
{
expiresIn: '4h'
});
return res.status(200).json({
message: 'Auth Successful! User Found. ',
token
})
} else {
return res.status(404).json({
message: 'Auth Failed! User Not found'
})
}
}
【问题讨论】:
-
当你点击
401时,你会触发令牌刷新api吗? -
@saikatchakrabortty 没错,它不是最终草案。但是,我将不胜感激我的问题的任何答案。而且我认为在达到 401 时刷新令牌是不明智的。这只不过是一种违规行为,因为该用户会在提供无效令牌时登陆 401。
-
只有在旧的令牌尚未过期或始终可以刷新时才能刷新令牌?
标签: javascript node.js reactjs jwt