访问 cookie,希望是在 JavaScript 中

2023-12-28

我正在开发一个 Firefox 插件,它允许用户(所有用户都属于特定组;该插件的受众范围非常有限)从状态栏查看其身份验证 cookie 的状态。我们都必须进行身份验证才能访问与工作相关的网站,但是当 cookie 过期时我们不会收到任何警告,因此这会导致工作流程中令人烦恼的、有时甚至是严重的中断。最终,这个附加组件将允许我们从状态栏提交我们的凭据,而无需执行任何重新加载或重定向,但现在,我只想看到它显示状态。

我一直在查看 Mozilla 开发人员页面的 nsICookie、nsICookie2、nsICookieManager 等,但并没有很清楚地了解它们如何适合 JavaScript 或 XUL 或其他任何内容。

理想情况下,我只是想要一种让 JavaScript 走出文档并获取我指定的域的 cookie 字符串的方法。如果我能做到这一点,就可以将代码移植到其他浏览器(特别是 Safari 和 Chrome)。但如果这必须是特定于浏览器的,那么我至少想知道检查 cookie 是否存在于 Firefox 中的方法,而不需要任何设置或删除的花哨。

简而言之,我想要一种方式来表达:

 if (cookieExists("sample.com", CookieName)) {
     alert("You're signed in!");
 } else {
     alert('Go sign in, you fool!');
 }

执行此操作最简单/最便携的方法是什么(当然是浏览器端)?


我一直在查看 Mozilla 开发人员页面的 nsICookie、nsICookie2、nsICookieManager 等,但并没有很清楚地了解它们如何适合 javascript 或 XUL 或其他任何内容。

可以从 Firefox 扩展访问所有 cookie,并使用 nsICookieManager 和 nsICookie 接口。通过扩展程序中的 javascript 代码,您可以使用以下命令访问 cookie 管理器

var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);

并且您可以遍历所有存储的 cookie

var enum = cookieManager.enumerator;
while (enum.hasMoreElements()){
   var cookie = enum.getNext();
   if (cookie instanceof Components.interfaces.nsICookie){
      // commands
   }
}

现在,当引用 cookie 对象时,您可以检查它的属性

cookie.host
cookie.name
cookie.value
...

定义于nsICookie https://developer.mozilla.org/en/nsICookie界面。此代码是 Firefox 特定的,可以作为浏览器扩展运行或签名脚本 http://www.mozilla.org/projects/security/components/signed-scripts.html。希望我的解释有一点帮助。

下面我提供了一些在扩展中使用 JS XPCOM 接口的链接:

  1. JS XPCOM https://developer.mozilla.org/en/Code_snippets/JS_XPCOM
  2. 使用cookie https://developer.mozilla.org/en/XUL_Tutorial/XPCOM_Examples#Cookies
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问 cookie,希望是在 JavaScript 中 的相关文章

  • 从 HTML 表单发送数据到 Node.js 服务器

    我正在学习 Node js 我的服务器中有这个 var http require http var url require url http createServer function request response response w
  • Jqplot 中两个系列数据的不同颜色条

    我想知道如何在 Jqplot 中为两个系列制作不同的颜色条 如果我只有一个系列数据 它的工作原理如下图所示 红色和绿色基于其值 但是 如果我有两个系列数据 我无法为每个系列数据配置两个系列颜色 目前我只能做这个图 我希望两个系列图可以根据其
  • 从 Angular 6 服务中绑定图像

    我有一个端点 它根据某些参数为我提供图像 这不是一个图像网址 而是一个普通图像 因此 当我到达邮递员中的端点时 作为响应 我收到一张图像 JPG 我是否可以在变量中接收该图像并将其绑定到 HTML 标签中 所有问题都有将图像 url 映射到
  • 如何在 Jest 测试中模拟 StatusBarManager.getHeight?

    我正在使用 expo 34 并且反应本机用户界面库 https www npmjs com package react native ui lib来自 wix 并且在为我的组件设置笑话测试时遇到问题 问题看起来出现在link https g
  • Angular 7 Guard 重定向仅适用于双击

    问题是我已经实现了一个 Guard 旨在处理特定的目录 如果当前用户名的角色等于 2 它应该返回 true 如果没有 那么它不应该重定向 这是我的 app routing module ts 文件 问题出在 userlist 路径中 我们是
  • React.js this.props.data.map() 不是一个函数

    我正在搞乱反应并尝试解析和渲染 json 对象 现在 我只是使用硬编码对象设置它以进行测试 而不是从 ajax 调用中获取它
  • 拖放图像上传在服务器上不起作用

    我正在尝试实现拖放图像上传 我在网上找到了一个相当简单的脚本并适合我的使用 在我的本地安装中 文件上传得很好 但在服务器上却不行 从我的调试尝试来看 SERVER HTTP X FILENAME 甚至没有被 php 设置 我尝试了以下方法
  • Javascript 根据字段值任意排序数组

    所以我有一个对象数组 如下所示 var myArray priority low priority critical priority high 我需要以这种方式排序 1 关键 2 高和3 低 如何才能做到这一点 我建议使用一个对象来存储排
  • 如何正确关闭 Node.js Express 服务器?

    我需要在收到回调后关闭服务器 auth github callback网址 与平常一样HTTP API http nodejs org docs latest api http html关闭 服务器目前支持server close call
  • jQuery 问题:它的真正含义是什么?

    function window undefined jquery code jQuery window 它到底意味着什么 是不是也意味着 document ready 或者只是两种不同的东西 已经有两个答案 但这是我对代码缺失端的猜测 fu
  • Google Maps JS Api - b.get 不是函数错误(isLocationOnEdge)

    我想检查我的路线上是否有标记 所以我尝试使用 isLocationOnEdge 但收到 TypeError b get 不是函数 错误 这是我的代码 我尝试了几次更改但无法解决问题 var directionsDisplay new goo
  • 在 Express 中设置客户端可访问 Cookie

    我正在开发一个使用 Express 和 SocketIO 的 Node 应用程序 我想在我的 Express 控制器中设置一个 cookie 然后可以从我的客户端 Javascript 代码访问该 cookie 我尝试的一切似乎都不起作用
  • Jest - 语法错误:无法在模块外部使用 import 语句

    我在用jest 24 9 0无需任何配置 从 create react app 全局安装 在这些文件中我使用 es6 模块 使用时没有报错 test react scripts test 但是当我开始使用时jest with test je
  • 自动调整元素 (div) 大小以适合水平内容

    我尝试谷歌搜索 但没有得到太多结果 我正在构建一个水平轮播 它在浮动的 LI 中显示图像 我想解决的问题是 每次我向轮播添加缩略图 我是延迟加载 时 我都需要重新计算轮播的宽度 以便所有浮动缩略图很好地并排排列 其一 我宁愿不必在 JS 中
  • 如何从普通 JavaScript 中的输入获取对象

    例如 我有 3 个输入
  • Node.js - Async.js:并行执行如何工作?

    我想知道 async js 中并行执行是如何工作的 async require async async parallel function callback for var i 0 i lt 1000000000 i Do nothing
  • jVectorMap - 向下钻取地图 - 自定义背景

    我正在使用 jVectorMap 中的向下钻取地图 并且尝试将自定义背景颜色设置为地图的第二层 为了自定义主级别 我使用 main 参数 但我不知道如何将其扩展到地图的较低级别 提前致谢 马切伊 None
  • Javascript 替换为正则表达式无法正常工作

    我正在尝试使用正则表达式验证名称 正则表达式阻止用户连续输入 2 个空格或点 这是我的代码 function test input var regex A Za z 0 1 s 0 1 input value input value rep
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐