使用AngularJS进行隐形Google reCaptcha

Jae*_*Lee 3 javascript recaptcha angularjs

我正在尝试在我的AngularJS Web应用程序中实现隐形 reCAPTCHA.根据他们的文档,我应该在登录表单的提交按钮中添加一个名为"data-callback"的属性.但是,我使用ng-click将http请求的功能附加到按钮.那么我应该把"data-callback"属性的值放入什么?另外,我怎么知道recaptcha结果是否成功,并获得g-recaptcha-response以使用我的http请求发送到服务器?

https://developers.google.com/recaptcha/docs/invisible

Cht*_*lek 12

有一个角度包装器,但如果像我一样,你想使用原始的JavaScript库,这是如何做到的:

数据回调期望一个java脚本全局函数,所以使用$ scope内的函数将无法工作..我想出的解决方案是创建一个继承angular函数的全局函数.

所以你应该这样做:

$scope.login = function (token) {
  // your login logic
}
$window.login = $scope.login;
Run Code Online (Sandbox Code Playgroud)

并且不要忘记在您的范围中注入$ window作为依赖项.

谷歌隐形reCaptcha将向您发送令牌,以便您可以验证用户服务器端.

在你的HTML中:

<button class="g-recaptcha"
  data-sitekey="your_google_key_here"
  data-callback="login"
  data-size>
Login
</button>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 对于测试,你应该绑定到$ window而不是window本身. (2认同)
  • 它起初不起作用,但这是因为我没有注入$ window作为依赖.谢谢! (2认同)