【发布时间】:2022-01-02 16:28:16
【问题描述】:
我正在构建一个使用 jwt 进行身份验证的 API。我使用中间件来解码令牌并在每条路由之前设置 req.user。
app.use(async (req, res, next)=>{
const token = req.headers.accessToken;
if(!token){
req.user = undefined;
next()
}
try{
const user = await jwt.verify(token, SECRET)
req.user = user
next()
}catch(err){ // token present but invalid
res.status(which status to use?).json(err)
}
})
如果令牌存在但无效/过期,我想要求客户端发送刷新令牌。我应该使用哪个状态码。我可以使用403,这意味着未经授权,但如果令牌刚刚过期,则用户已获得授权但只需要一个新令牌。我不希望客户端将此403 状态与用户发送时发送的状态混淆实际上无权访问资源。
由于我无法在 google 上找到答案,我怀疑这不是处理令牌的方式。有没有更好的办法?
【问题讨论】:
-
401 未经授权
-
好的,谢谢。这是验证令牌的标准方法吗?
标签: node.js express jwt token http-status-codes