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


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

  • 相关阅读:
    【LeetCode】208.实现Trie(前缀树)(java+c++,两种方法实现,详细图解)
    《java入门第一季》之二维数组
    《java入门第一季》之二维数组
    iOS中UITableView分割线左侧顶齐
    open_links_per_instance 和 open_links 参数说明
    《java第一季之入门篇》的想法
    十四个方法提高博客的页面访问量
    Android中的Message机制
    OC中的枚举类型
    解决ADT大量出现"Unexpected value from nativeGetEnabledTags: 0"的问题
  • 原文地址:https://www.cnblogs.com/shoupifeng/p/14602838.html
Copyright © 2020-2023  润新知