如何让用户在更改网址后,系统自动重新登录--前端实现方法

近来生产的内部网站,出现一个奇葩的情况:一个工厂的用户在登录了对应工厂的网站A的情况下,然后通过改网站地址栏的网站目录名字,自行切换到工厂网站B;网站A与网站B其实是一套程序,只不过链接不同的工厂数据库;用户通过切换网站目录,可以在不重新登录的情况,操作不属于该工厂的数据,导致了生成对应生产数据不正确;
网站A:

网站B:

看到用户这样的骚操作,要重新审视自己系统做的系统是否健壮?看来是不能低估劳动人民的智慧,不出意外的话,我又成背锅侠了;
遇到这个问题后,我第一时间想到调整Session的机制,通过调整Session的过期时间或单点登录相关机制,达到控制这种行为发生;但这个Bug要尽快控制起来,不然的话后面迎接我的是麻烦的后台调数;
所以用前端的方式让它先顶住先,后续再从后台那边慢慢优化,于是就有了以下前端的显示代码了;

//在两个网站的登录页面,添加
sessionStorage.setItem("SiteName", window.document.location.pathname.split("/")[1]); //登录时记录站点目录

//然后在公共页面检测登录状态的过程中添加
        var logSiteName = sessionStorage.getItem("SiteName");
        if (logSiteName != "null" || logSiteName != null) {
            var currentSiteName = window.document.location.pathname.split("/")[1];
            if (logSiteName != currentSiteName) {
                window.location.href = "Login";
            }
        }else{  
            sessionStorage.setItem("SiteName", window.document.location.pathname.split("/")[1]); //登录时记录站点目录
        }

上面只是使用以下简单Js判断,就判断当前网址目录名称,如果不同,就认为你改过地址,用骚操作进入的,对不起,这种情况,请重新登录.

posted @ 2021-03-31 17:48  shoupifeng  阅读(49)  评论(0编辑  收藏  举报