res.setHeader('Content-Type', 'application/json')
res.json({success: true, token: token, status: '已经刷新token'})
break
case 'JsonWebTokenError':
default:
res.statusCode = 401
res.json({
code: 401,
data: {
error: err
},
message: 'token错误'
})
break
}
})
}
})
8. 用户jwt验证不通过
passport在验证jwt不通过时(token过期也是一种不通过)自动向前端发送“状态码为401,内容是Unauthorized”.
9. 用户申请登出
在前端删除token.
10. 不要打断活动用户的操作
在no.7里若因为token过期造成验证不通过,则向前端返回了新的token。不是在不影响用户操作前提下更新用户的token的。下面在的总结的几种不影响用户操作的前提下更新用户的token的方法。
前端设置一个定时器。在小于过期时间时向后端请求新token并保存起来。
把token放在cookie时。后端从cookie里取出token,在过期前更新token。
将 token 存入 DB(如 Redis)中,失效则删除;但增加了一个每次校验时候都要先从 DB 中查询 token 是否存在的步骤,而且违背了 JWT 的无状态原则(这不就和 session 一样了么?)。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。









