我正在构建一个需要通过 AJAX 与 RoR Web 应用程序交互的小部件(使用 JavaScript)。用户的工作流程如下所示:
- 登录到 RoR 网络应用程序
- 获取浏览器扩展或小书签(两者共享相同的代码库),无论哪个
- 转到网站并激活小部件
- 在你想保存的那个网站上点东西,按确定
- 您会在 Web 应用程序上获取包含捕获内容的 URL
小部件代码中的工作流程类似于:
- 从 DOM 收集东西并发出相关的 jQuery JSONP 请求
- 如果响应中有一条自定义状态消息读取“未授权”,请打开一个
<iframe />
来自 Web 应用程序的授权页面 - 如果响应中的身份验证成功,则会有一个Set-Cookie
标头设置后续 AJAX 请求所需的身份验证 cookie - 如果需要身份验证,请再次尝试 JSONP 请求
这仅适用于书签。但是,对于 Firefox 扩展程序,Web 应用程序会接收已去除 auth cookie 的请求。事实上,去掉了所有的 cookie。似乎请求是沙盒的。现在我知道有@mozilla.org/cookieService
扩展可用。问题是:
- 如何将 cookie 从扩展的 main.js 传递到内容脚本中的 JSONP 请求?
- 如何使用 url localhost:3000 获取开发环境的 cookie?
cookieService
返回 null 作为该 url 的cookie - 将身份验证的解析方式从 cookie 更改为其他方式是否可行?