【问题标题】:Which status code should be sent to client when accessToken has expired and the client needs to send refresh token当 accessToken 已过期且客户端需要发送刷新令牌时,应该向客户端发送哪个状态码
【发布时间】: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 上找到答案,我怀疑这不是处理令牌的方式。有没有更好的办法?

【问题讨论】:

标签: node.js express jwt token http-status-codes


【解决方案1】:

401 - Unauthorized:401 - 是在客户端请求由于缺少所请求资源的有效身份验证凭据而未完成时使用的状态代码。

看看这个resource 一次:

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2020-02-26
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多