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

Ric*_*wne 6 recaptcha google-chrome-extension

我正在构建一个Chrome扩展程序,该程序可以与希望通过Google recatcha保护的API进行交互,因为我打算将其扩展到Chrome扩展程序之外。API端正在工作,可以正确验证与Google的recapcha响应,但是,在扩展程序的浏览器操作窗口内显示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').
Run Code Online (Sandbox Code Playgroud)

recaptcha_en.js在以下行中生成:

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

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

该错误的结果是recaptcha小部件显示一条消息,内容为:

请升级到受支持的浏览器,以获取reCAPTCHA挑战。

我正在通过自动渲染方法显示窗口小部件,但也尝试了导致相同错误的显式方法。有关信息,我使用以下方法content_security_policy

script-src 'self' https://*.google.com https://*.gstatic.com; object-src 'self'
Run Code Online (Sandbox Code Playgroud)

有什么办法可以让我的扩展程序正常工作吗?如果没有,那么整合Recaptcha的最佳替代方法是什么?

小智 3

在验证码 v3 中

manifest.json "content_security_policy": "script-src 'self' https:// .google.com https:// .gstatic.com; object-src 'self'"

将 Chrome 扩展 ID 添加到 RECAPTCHA 管理控制台中允许的域

chrome 扩展://aailnablglhloogfnpkgddnjjfimhhhg

所以你只需输入“aailnablglhloogfnpkgddnjjfimhhhg”而不带 chrome-extension://