即使用户使用后退按钮也重定向 (Node.js)

Redirect even if user uses back button (Node.js)

我用 jwt 制作了一个登录系统,基本上,如果登录 (homepage/login) 成功,用户将重定向到主页 (homepage/)。之后,即使用户在 url 中键入 (homepage/login),他们也会被重定向回主页,因为(只要)他们拥有 jwt 令牌。

我有以下代码:

app.get('/login', (req, res) => {
  const token = req.cookies.jwt
  if(token) {
    res.redirect('/')
  } else {
    res.render('login')
  }
})

但是,如果用户通过“后退按钮”转到 (homepage/login),即使他们拥有令牌,也不会再被重定向。 如果按下后退按钮,如何包含重定向?

客户端正在重定向。

因此,只需包含一个前端 javascript 代码来检查令牌是否存在。如果不存在,重定向。

在 html 代码中,将此脚本包含在 head 标记中(假设您使用本地存储来存储令牌:

<html>
  <head>
  ..
  ..
  <script>
    const token = localstorage.getItem("token");
    if(token == null) {
      window.location.replace("-path-to-home-page-");
    }
    </script>
  </head>
  <body>
  ..
  ..
  ..
  </body>
</html>