我正在构建一个需要通过AJAX与RoR Web应用程序进行交互的小部件(使用JavaScript)。为用户的工作流程是这样的:AJAX请求 - Cookie身份验证
- 登录RoR的Web应用程序
- 获取浏览器扩展或书签(两者共用同一个代码库),取其
- 去一个网站并激活控件 你想在该网站上
- 点东西得到保存,按OK
- 你回来在Web应用程序的URL与所采集内容
在widget代码的工作流程看起来是这样的:从DOM
- 收集的东西,并签发相应的jQuery的JSONP请求
- 如果有在响应读“未经授权”,打开有一个
<iframe />
自定义状态消息从Web应用程序发起授权页 - 如果身份验证是成功的响应有一个Set-Cookie
报头中设置身份验证cookie的需要后续的AJAX requets - 是否有过身份验证需要,尝试JSONP请求再次
这只适用于书签。但是,对于Firefox扩展程序,Web应用程序会收到删除auth cookie的请求。事实上,所有的曲奇都没有。似乎请求被沙箱化。 现在我知道有@mozilla.org/cookieService
可用于扩展。问题是:
- 如何将cookie从扩展的main.js传递到内容脚本中的JSONP请求?
- 我该如何获得开发环境的cookie,url localhost:3000?
cookieService
返回null作为该网址的Cookie - 是否可以更改从cookie到其他身份验证的解析方式?