【问题标题】:obtain session Id from cookies using javascript使用 javascript 从 cookie 中获取会话 ID
【发布时间】:2011-09-07 01:05:01
【问题描述】:

我正在尝试了解 cookie 以及它们存储的所有内容。由于我是 Google Chrome 的活跃用户,我正在考虑仅使用 Javascript 从 cookie 访问网页的会话 ID。我使用chrome.cookies.getAll() 获得了存储在浏览器中的所有cookie 的列表。

但是我不明白如何从 cookie 中访问会话 ID,因为它没有关键字?

如何从 cookie 中获取会话 ID?

获取cookies的代码如下:

<html><head>
<script>
chrome.browserAction.onClicked.addListener(getCookies);

var cacheMap = {};
var cookie_nameArr = [];
var cookie_valArr = [];


    function getCookies(){
        chrome.cookies.getAll({}, function(cookies){

            for(var b in cookies){                      
            var cookieVal = cookies[b].value;
            var cookieName = cookies[b].domain;
                    cookie_nameArr.push(cookieName);
                    cookie_valArr.push(cookieVal);              
                if(!cacheMap[cookieName])
                {
                    cacheMap[cookieName] = 1;
                }
                else
                    cacheMap[cookieName]++;
    }//alert(cookie_nameArr.length + "," + cookie_valArr.length);
        for(var i=0;i<3;i++)
    {   
        alert(cookie_nameArr[i] + ", " + cookie_valArr[i]);

    }

});
}

</script></head>
</body></html>

【问题讨论】:

    标签: javascript cookies google-chrome google-chrome-extension session-cookies


    【解决方案1】:

    首先你需要弄清楚你在寻找什么。在黑暗的房间里很难找到一只黑猫,特别是如果它不在那里。

    在您感兴趣的页面上打开 Chrome 开发工具并检查资源选项卡。您是否在“Cookies”下看到您的 cookie?如果是,那么您将能够使用您的方法阅读它。如果没有,请检查您的页面 url - 也许它是作为 url 参数传递的?如果不是,那么会话可能仅用于 ajax 请求?可能根本没用过?

    您需要先手动查找,然后以编程方式查找。会话有各种形式和大小,每个站点都有自己的实现方式。您无法构建读取所有站点会话的扩展。

    您的方法几乎是可行的方法,只是有一种使用控制台而不是警报检查对象的简单方法:

        chrome.cookies.getAll({domain: "stackoverflow.com"}, function(cookies){
            console.log(cookies);
        });
    

    单击扩展选项卡上的 background.html 链接并检查控制台。

    【讨论】:

    • 我确实查看了此页面的 cookie 选项卡,是的,存在一些 cookie。你能给我提供一些示例代码吗?感谢您的信息:)
    • @user781022 我添加了示例,只需尝试控制台而不是警报。
    • 获得的输出是:[Object, Object, Object, Object, Object, Object, Object, Object, Object] 我猜这是正确的,因为stackoverflow的资源选项卡下有8个cookie .com 域。每个cookie的值是否存储网页的会话ID?顺便说一句,非常感谢示例代码
    • @user781022 点击这些 [Object] 附近的箭头,您将能够看到里面有什么。对于stackoverflow,看起来会话存储在usr cookie 中。如您所见,cookie 名称可以是任何名称,不必说 SESSION
    • 是的,那么有没有办法找到具有会话 ID 的 cookie 名称,然后以编程方式检索会话 ID?
    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 2019-09-29
    • 2015-02-14
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2015-12-14
    • 2012-05-08
    相关资源
    最近更新 更多