发布请求适用于我的本地计算机,但不适用于远程服务器

问题描述

在我的电脑上,我有 nodejs 10.13.0,在我的服务器上我运行 ubuntu v10.22.1。我使用 express js 作为服务器。 我在两者上都有很多端点(PUT、POST、GET)。所以我在我的 Windows 计算机上开发它并推送到 Linux 服务器。所有端点在两台机器上都按预期工作,但由于某种原因,该端点在 ubuntu 服务器上不起作用。它返回 403。完全相同的代码在 Windows 上运行良好。你遇到过这样的吗?我在这两种情况下都使用邮递员。

router.post('/refresh-token',(req,res,next) => {
let refreshToken = req.cookies.jwt_refresh
let authorization = req.headers.authorization_refresh

try {
    if (refreshToken) {
        req.user = jwt.verify(refreshToken,config.REFRESH_TOKEN_SECRET)
    } else if (authorization) {
        req.user = jwt.verify(authorization,config.REFRESH_TOKEN_SECRET)
    } else {
        res.status(403);
        res.send()
    }
} catch (error) {
    res.status(403);
    res.send({error: error.message,success: false})
}

Tokens.findOne({
    where: {user_id: req.user.id,client_id: req.user.client}
}).then(token => {
    if (token) {
        let refreshToken = token.refresh_token
        try {
            jwt.verify(refreshToken,config.REFRESH_TOKEN_SECRET)

            let newToken = generateAccesstoken(req.user.username,token.user_id,req.user.client)
            let newRefreshToken = generateRefreshToken(req.user.username,req.user.client)

            res.cookie("jwt",newToken,{secure: true,httpOnly: true})
            res.cookie("jwt_refresh",newRefreshToken,httpOnly: true})
            res.send({
                success: true,error: null,result: {
                    access_token: newToken,refresh_token: newRefreshToken
                }
            })
        } catch (error) {
            console.error("refresh token error",error)
            res.status(403);
            res.send({error: {message: "refresh token error,please log in"},success: false})
        }
    }
}).catch(error => handleError(error,{},next,statusCode = 403))

})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)