Vue.js SPA:如果JWT已过期,如何防止浏览器打开缓存版本?

时间:2019-06-20 15:31:04

标签: javascript express vue.js jwt

我的Vue.js / Express应用程序无法解决问题。

过程如下:

未经身份验证的用户登录到应用程序并接收登录页面。 身份验证后,后端将生成并发送一个cookie,其中包含JWT和已构建的Vue.js页面的静态内容。

随后,对REST API的调用在检查JWT有效性的同一后端进行。 JWT到期后,将返回登录页面的静态内容。

它可以正常工作,但是当关闭浏览器然后重新打开时,如果选项卡已保留在内存中,并且同时JWT已过期,则您将获得索引页的缓存版本,而REST请求失败因为JWT已过期。

在这种情况下,如何进入登录页面?谢谢您的帮助。 :)

2 个答案:

答案 0 :(得分:0)

好消息是请求失败。根据请求响应,您应该只将用户重定向到前端应用程序中的登录页面。

这是场景:

请求=>已通过身份验证?索引:登录

答案 1 :(得分:0)

最后,我通过在后端禁用缓存来解决了这个问题:

app.use((req, res, next) => {
  res.set('Cache-Control', 'no-store, no-cache, must-revalidate, private')
  next()
})