当accessToken过期并且客户端需要发送刷新令牌时,应该向客户端发送哪个状态代码



我正在构建一个使用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状态与用户实际未被授权访问资源时发送的状态混淆。

由于我在谷歌上找不到答案,我怀疑这不是处理代币的方法。有更好的方法吗?

401-未授权:401-是在客户端请求未完成时使用的状态代码,因为它缺少所请求资源的有效身份验证凭据。

看看这个资源一次:

最新更新