如何解决当使用nodejs在Chrome的不同选项卡中的localhost:3000上都打开了三个仪表板时,为什么三个仪表板无法正常工作?
因此,我的项目有3个仪表板,分别用于客户,管理员和员工。这三个都具有不同的功能和选项。 (有一点变化)
所有3个登录页面都具有相同的登录页面,即:localhost:3000/login
并且这三个仪表盘都相互依赖。假设客户在其仪表板上添加了一些任务,然后管理员通过其各自的仪表板批准了该任务,然后该员工通过其仪表板更新了任务状态,该状态也在其他两个仪表板上进行了更新。
因此,要并行检查所有功能,我在同一Google Chrome浏览器中分别登录了3个localhost:3000/login
选项卡,以进行测试,而不是一次又一次地串行登录并检查数据是否正在更新。 / p>
但是通过使用单独的仪表板,数据有时会不匹配并且不会更新。 因此,我认为在部署代码之后,当这三个用户同时登录并开始进行更改时,这将成为问题吗?部署后是否可以正常工作?还是仅在本地主机上使用
?这是我正在为所有用户使用的nodejs中的登录代码:
router.route('/login')
.get(function(req,res,next) {
res.render('login',{ title: 'Login your account'});
})
.post(passport.authenticate('local',{
failureRedirect: '/login'
}),function (req,res) {
if(req.user.tag == 'Emp')
res.redirect('/profileEmp');
else if(req.user.tag == 'Admin')
res.redirect('/profileAdmin');
else {
res.redirect('/profile');
}
// console.log(req.user.email);
});
P.S。当我仅使用一个仪表板登录进行更改,然后再次注销并登录到另一个表示“员工一个”的仪表板时,所有仪表板都可以正常工作。效果很好。
解决方法
我猜您有三种不同的登录凭据,每个角色一个。
登录会话管理通常的工作方式是:在接受一组凭据后,护照模块将会话cookie馈送到您的浏览器。
如果您以user
的身份登录,然后在与admin
相同的浏览器中,则管理会话cookie会覆盖用户会话cookie。该浏览器(所有选项卡)现在以admin
的身份登录。
有一个名为EditThisCookie的Chromium网络扩展。它使您可以轻松查看每个页面的cookie。用它来解决这类问题。
我使用三种独立的浏览器Chrome,Firefox和Edge或Safari来调试这种事情。我可以通过在单独的浏览器中运行单独的会话来使其分开。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。