模仿Chrome打包应用

时间:2016-02-16 22:03:12

标签: javascript sockets cookies google-chrome-app

我正在使用REST服务,这不是我可以修改的。 该服务具有验证/登录和许多"数据 - 检索"端点。

我被要求创建" Chrome打包应用"将使用此REST服务。

我的限制是: 无法使用沙盒页面。 无法使用网页浏览。

问题:

  1. Xhr请求忽略" Set-cookie"头。
  2. 手动设置cookie是不可能的(就像没有cookie api一样)。
  3. 创意&研究

    1. 我使用" chrome.socket"来搜索XHR实现,没有https支持,因为" chrome.socket"剂量不支持TLS。
    2. Forge是一个" Chrome-js"为" chrome.socket"
    3. 添加TLS支持的库

      问题

      1. 有没有办法修改请求和响应标头?
      2. 有没有办法使用" chrome.socket"组合XHR实现?与Forge? (我真的不知道协议或原始的XHR实施)

      3. 实施假cookie API来管理标题中的数据是否合理?

1 个答案:

答案 0 :(得分:2)

您应该考虑使用Cross-Origin Resource Sharing(CORS)请求。有一个很好的介绍here

特别是,您需要使用withCredentials

  

标准CORS请求默认不发送或设置任何cookie。在   为了包含cookie作为请求的一部分,您需要设置   XMLHttpRequest的.withCredentials属性为true:[...]

请注意,您需要服务器的合作才能执行此操作:

  

为了使其正常工作,服务器还必须启用凭据   将Access-Control-Allow-Credentials响应标头设置为   “真”。

由于您始终使用Chrome,因此可以使用Fetch API代替XMLHttpRequest2。在这种情况下,您将添加credentials选项:

  

您是否希望使用诸如的凭据进行获取请求   您应该将请求的凭据设置为“包含”。

这两种机制都将(1)支持HTTPS和(2)不透明地管理cookie,即它们不允许您检查cookie数据。