问题描述
在我的电脑上,我有 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 (将#修改为@)