如何使用 Express 重新加载页面?
Posted
技术标签:
【中文标题】如何使用 Express 重新加载页面?【英文标题】:How to reload the page using Express? 【发布时间】:2020-01-04 01:42:06 【问题描述】:我正在处理我网站的注销部分,我正在使用 JWT 进行身份验证并使用 cookie 将 JWT 发送给客户端。
为了注销,我传递了一些具有相同令牌名称的虚拟令牌值,以便它覆盖前一个令牌。但是当我退出门户网站时,我仍然可以访问我的仪表板。注销功能存在一些故障。我想这是由于浏览器缓存。
我有几个关于 Express 的问题。
是否有任何方法可以使用 Express 重新加载当前页面并同时删除浏览器缓存?
我需要在用户注销后禁用chrome的浏览器转发选项,如何使用express实现?
当用户尝试点击“/login”或“/signup”路由时,如何将用户重定向到他的仪表板?我正在使用 JWT 身份验证进行登录
提前致谢
【问题讨论】:
【参考方案1】:有什么方法可以使用 Express 重新加载当前页面并同时删除浏览器缓存?
服务器无法自行告诉浏览器该做什么。浏览器必须启动通信,然后对该通信采取行动。
您可以随时使用带有window.location.reload(true)
的javascript 让浏览器中的网页重新加载自己的页面。如果您希望服务器告知网页 Javascript 何时执行此操作,它可以向服务器发送常规 Ajax 调用,并根据响应决定何时重新加载页面。或者,它可以与服务器建立 webSocket 连接,并且服务器可以向网页发送一些数据,当网页接收到该数据时,它会看到它应该重新加载其页面。
如果您告诉我们真正的问题出在哪里,我们可以为您提供更好的帮助。网页可以使用 Javascript 和/或 webSocket 连接来动态更新自己,而不是一直重新加载。这是一个更现代的设计。
用户退出后我需要禁用chrome的浏览器转发选项,如何使用express实现?
这里讨论了禁用前进按钮:html5 history disabling forward button。您可能会发现这是一种蛮力方法(它涉及摆脱浏览器历史记录),并且可能有更好的方法来解决您要解决的任何实际问题。听起来您可能还想管理浏览器缓存过期。
当用户尝试点击“/login”或“/signup”路径时,如何将用户重定向到他的仪表板?我正在使用 JWT 身份验证进行登录
当您在 Express 中检测到来自已登录用户的“/login”或“/signup”请求时,您只需从服务器回复res.redirect("/dashboard")
。仅供参考,有很多关于这是否是正确的用户体验的问题。已经登录后进入“/login”或“/signup”的用户可能有以下任何一种用例:
-
他们没有意识到自己已经登录,或者他们不知道自己是否以所需用户的身份登录。
他们想以其他用户身份登录。
他们想要创建一个新帐户(不同于当前登录的帐户)。
他们正试图弄清楚如何退出。
您应该确保盲目重定向(而不是将用户带到他们要求访问的页面)仍然使所有这些用例完全清晰。否则,您只会让用户感到沮丧,因为您没有将他们带到他们要求去的地方。
【讨论】:
以上是关于如何使用 Express 重新加载页面?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不重新启动的情况下在 Express 上重新加载一个文件?
更改 *.js 文件后,页面重新加载非常缓慢(~30sec-2min)[express+gulp+gulp-nodemon+browser-sync]