Javascript 浏览器后退按钮不可用';t在PassportJS+中销毁会话;ExpressJS。如何完全终止/终止会话?
我的注销机制的代码是Javascript 浏览器后退按钮不可用';t在PassportJS+中销毁会话;ExpressJS。如何完全终止/终止会话?,javascript,node.js,express,passport.js,passport-local,Javascript,Node.js,Express,Passport.js,Passport Local,我的注销机制的代码是 app.get('/logout', isLoggedIn, function(req, res) { req.logout(); res.redirect('/'); }); 我使用的是使用密钥的快速会话包,没有在任何地方设置cookie 当我在注销后单击browser Back按钮时,它仍然允许用户返回正在验证的页面。如何完全终止此会话 isLoggedIn只是通过PassportJS的isAuthenticated方法进行身份
app.get('/logout', isLoggedIn, function(req, res) {
req.logout();
res.redirect('/');
});
我使用的是使用密钥的快速会话包,没有在任何地方设置cookie
当我在注销后单击browser Back按钮时,它仍然允许用户返回正在验证的页面。如何完全终止此会话
isLoggedIn只是通过PassportJS的isAuthenticated方法进行身份验证。这里怎么走
请帮忙。提前谢谢
编辑:这是会话Id
为注销用户有条件地将
缓存控制
标题设置为无缓存
app.use(function(req, res, next) {
if (!req.user)
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
next();
});
这将迫使浏览器获取页面的新副本,即使在他们点击“后退”时也是如此
注意:这是以为所有未登录的用户禁用缓存为代价的,为了回答这个问题,这些用户包括刚注销的用户。如果您不想完全禁用所有已注销用户的缓存,您可能应该找到一种方法来区分这两种缓存。一些关于会话的东西 如果您确定当用户回击时,
'/login'
是他们将到达的路线,那么您只能在那里定义它,从而避免了执行上述操作的麻烦
这段代码到底到哪里去了
app.get('/logout', isLoggedIn, function(req, res) {
req.logOut();
if (!req.user)
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
res.redirect('/login');
});
可以这样使用吗
没有
app.get
(或app.use
)定义您的路线。文件:
app.get(“/logout”…
仅当客户端请求路由“/logout”
时才会执行
app.use(…)
(不指定任何路由)将对所有请求执行
这些路由“中间件”(如它们所称)也会依次执行。(您将在上面提到的文档中了解更多信息)
您希望在任何其他路由之前设置头,以便无论这些其他路由呈现什么,都使用强制使用户缓存无效的头来呈现
// > HERE <
// before all the other routes
app.get('/logout'...
app.get('/login'...
app.get('/'...
app.get('/stuff'...
/>这里<
//在所有其他路线之前
app.get(“/logout”。。。
app.get(“/login”。。。
app.get(“/”。。。
app.get(“/stuff”。。。
它最有可能显示来自浏览器缓存的内容,这意味着它没有进入网络,因此对此你无能为力。谢谢..这可能是一个n00b问题,但这段代码到底去了哪里?code app.get('/logout',isLoggedIn,function(req,res){req.logout();if(!req.user)res.header('Cache-Control','private,no Cache,no store,must revalidate');res.redirect('/login');});
可以这样使用吗?@laggingreflectuser
in中的用户是什么。