Django 角度:区分不同选项卡中的会话

Django 角度:区分不同选项卡中的会话,django,angular,django-rest-framework,polling,sessionid,Django,Angular,Django Rest Framework,Polling,Sessionid,我正在开发一个web应用程序。前端是Angular,后端是带有django Rest框架的Rest API。对于一些客户需求,我需要django rest api能够区分具有sessionid的轮询请求。经过一些搜索,我发现我可以在REST API端用以下值标识会话: request.session.session_key 但这并不是最好的选择,因为对于两个不同的选项卡,我得到了相同的session_键和restapi在请求中接收到的所需sessionId,应该为特定选项卡标识会话。因此,不仅

我正在开发一个web应用程序。前端是Angular,后端是带有django Rest框架的Rest API。对于一些客户需求,我需要django rest api能够区分具有sessionid的轮询请求。经过一些搜索,我发现我可以在REST API端用以下值标识会话:

request.session.session_key
但这并不是最好的选择,因为对于两个不同的选项卡,我得到了相同的session_键和restapi在请求中接收到的所需sessionId,应该为特定选项卡标识会话。因此,不仅不同PC和主机IP地址的sessionid,或仅浏览器的sessionid,还应该为两个不同的选项卡获得两个不同的sessionid

django请求对象是否包含其他标识主机选项卡的id

我想这个解可以在角边找到


Angular和typescript中是否有方法识别选项卡会话?

我不知道您是否可以在某些浏览器js变量中找到相关的tabid值,但您可以使用localStorage和sessionStorage创建它。 使用本地存储,您可以创建变量,整个选项卡都可以查看这些变量的值。sessionStarage用于创建仅在“实际”选项卡中查看的值的项目。 我们将使用localStorage存储上次受影响的选项卡id,并使用sessionStorage存储实际的选项卡id值,如下所示:

let lasttabid= localStorage.getItem("lastTabId");
    let tabid= sessionStorage.getItem("tabId"); 
    let lasttabidint: number;
    console.log("lasttabid: "+lasttabid+" tabid: "+tabid);
    if(tabid === undefined || tabid == null || tabid.length<=0 || !tabid){
        if(lasttabid === undefined || lasttabid == null || lasttabid.length<=0 || !lasttabid){
            sessionStorage.setItem("tabId", "1");
            localStorage.setItem("lastTabId", "1");
            tabid= "1";
        } else {
            lasttabidint= +lasttabid;
            sessionStorage.setItem("tabId", String(++lasttabidint));
            localStorage.setItem("lastTabId", String(lasttabidint));
            tabid= String(lasttabidint);
        }
    }

console.log("actual tab id is : "+ tabid);
let lasttabid=localStorage.getItem(“lasttabid”);
设tabid=sessionStorage.getItem(“tabid”);
让lasttab定为:数字;
log(“lasttabid:+lasttabid+”tabid:+tabid);
如果(tabid==undefined | | tabid==null | | | tabid.length可能是Thank you ahmad sahnoun:)的重复项,那就太好了,您的答案很有帮助