如何在我的Chrome扩展程序中授权用户?

时间:2015-02-08 09:03:55

标签: javascript ajax google-chrome-extension authorization

我正在构建的是简单的chrome扩展,它将我的脚本添加到用户访问的所有页面,如此

contentcript.js中的

var s = document.createElement('script');
s.src = 'https://localhost:3000/js/hack.js';
s.onload = function() {
    this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);

在rails-backend上,通过devise gem提供简单的登录密码和omniauth(oauth)授权。

如果我在rails页面上授权,稍后在hack.js中授权,我尝试通过XMLHttpRequest对我的本地服务器进行一些ajax调用 - 它会尽力向我保证用户未经授权。

我敢打赌,可以通过在某个地方打开隐形iframe来解决,但是那种hellova痛苦,可能会有一些更方便的方法吗?

1 个答案:

答案 0 :(得分:1)

要执行授权请求,您可能必须在XHR中获取脚本,您可以在其中添加各种auth标头。然后,脚本可以是injected as inline code,而不是提供src

请注意,内容脚本可以为清单中包含host permissions的所有网站执行跨域XHR,即使不允许页面执行此操作也是如此。

由于网页的内容安全政策可能会禁止在src中使用您的网址注入脚本,但将其作为内联脚本sort of bypasses CSP注入,因此它是一种更好的方法反正。