zoukankan      html  css  js  c++  java
  • 如何让用户在更改网址后,系统自动重新登录--前端实现方法

    近来生产的内部网站,出现一个奇葩的情况:一个工厂的用户在登录了对应工厂的网站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判断,就判断当前网址目录名称,如果不同,就认为你改过地址,用骚操作进入的,对不起,这种情况,请重新登录.

  • 相关阅读:
    230 Kth Smallest Element in a BST 二叉搜索树中第K小的元素
    229 Majority Element II 求众数 II
    bzoj1112: [POI2008]砖块Klo
    bzoj2958: 序列染色&&3269: 序列染色
    bzoj2743: [HEOI2012]采花
    bzoj4247: 挂饰
    bzoj3613: [Heoi2014]南园满地堆轻絮
    bzoj3280: 小R的烦恼
    bzoj1221: [HNOI2001] 软件开发
    bzoj4320: ShangHai2006 Homework
  • 原文地址:https://www.cnblogs.com/shoupifeng/p/14602838.html
Copyright © 2011-2022 走看看