如何在Chrome扩展程序浏览器操作中显示Google reCAPTCHA v2?

时间:2016-07-17 13:35:35

标签: google-chrome-extension recaptcha

我正在构建一个Chrome扩展程序,该扩展程序与我希望使用Google Recatcha保护的API进行交互,因为我打算在Chrome扩展程序之外使用它。 API方面正在运行,正确验证Google的重新回复响应,但是,在扩展程序的浏览器操作窗口中显示recatcha小部件会导致以下javascript错误:

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl:80') does not match the recipient window's origin ('chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl').

recaptcha_en.js行中生成:

(a.window || ne(a.Tg)).postMessage(JSON.stringify({
        message: c || null ,
        messageType: b
    }), Zj(a.path));

问题似乎是a.path的价值是chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl:80,但我不知道如何影响这个价值。

此错误的结果是recaptcha小部件显示一条消息:

  

请升级到支持的浏览器以获取reCAPTCHA质询。

我通过auto render method显示小部件,但也尝试了导致相同错误的explicit method。有关信息,请使用以下content_security_policy

script-src 'self' https://*.google.com https://*.gstatic.com; object-src 'self'

有什么方法可以让我在我的扩展中工作吗?如果没有,整合recaptcha的最佳替代方法是什么?

1 个答案:

答案 0 :(得分:0)

在recaptcha v3中

manifest.json “ content_security_policy”:“脚本src'自我'https:// .google.com https:// .gstatic.com;对象src'自我'”

在RECAPTCHA ADMIN控制台中允许的域中添加铬色扩展ID

chrome-extension:// aailnablglhloogfnpkgddnjjfimhhhg

因此,您只需要输入“ aailnablglhloogfnpkgddnjjfimhhhg”,而无需添加铬扩展名://