同一页面不同实例的不同唯一令牌

时间:2019-03-27 06:41:23

标签: javascript jquery

我有一组带有设备ID的设备。右键单击每个设备,它将传递设备ID并在多个选项卡中打开同一页面(在每个选项卡中,在每个右键单击同一页面的新选项卡中),并带有相应的已单击设备详细信息。

在这里,我必须为每个选项卡保留一个不同的标记(随机字符串变量)。并且令牌也不应在页面刷新时更改。 我怎样才能做到这一点 ?我尝试了一些东西,但是没有用。

创建了一个随机字符串,将设备ID附加到其中,并存储为本地存储,

var prToken = window.localStorage.getItem('token');
        if(prToken){
            var subString = prToken.substring(10, prToken.length);
            if(subString == GlobalVar.Inventory.device.id){
                console.log(window.localStorage.getItem('token')+"====token");
            }else{
                var rString = GlobalVar.Inventory.randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',GlobalVar.Inventory.device.id);
                window.localStorage.setItem('token', rString);
            }

        }else{
            var rString = GlobalVar.Inventory.randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',GlobalVar.Inventory.device.id);
            window.localStorage.setItem('token', rString);
        } 

在这里,每个选项卡都获得了不同的令牌,但是问题是,令牌在页面刷新时发生了变化。

需要帮助。

1 个答案:

答案 0 :(得分:0)

解决了自己,对我来说很好。

  

用设备ID替换了“令牌”变量

。然后一切正常。 然后代码将是

    var prToken = window.localStorage.getItem(GlobalVar.Inventory.device.id);
            if(prToken){
                var subString = prToken.substring(10, prToken.length);
                if(subString == GlobalVar.Inventory.device.id){
                    console.log(window.localStorage.getItem(GlobalVar.Inventory.device.id)+"====token");
                }else{
                    var rString = GlobalVar.Inventory.randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',GlobalVar.Inventory.device.id);
                    window.localStorage.setItem(GlobalVar.Inventory.device.id, rString);
                }

            }else{
                var rString = GlobalVar.Inventory.randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',GlobalVar.Inventory.device.id);
                window.localStorage.setItem(GlobalVar.Inventory.device.id, rString);
            }