使用AngularJS进行隐形Google reCaptcha

时间:2017-03-22 21:01:08

标签: javascript angularjs recaptcha

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

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

1 个答案:

答案 0 :(得分:10)

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

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

所以你应该这样做:

$scope.login = function (token) {
  // your login logic
}
$window.login = $scope.login;

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

google invisible reCaptcha会向您发送一个令牌,以便您验证用户服务器端。

并在你的HTML中:

<button class="g-recaptcha"
  data-sitekey="your_google_key_here"
  data-callback="login"
  data-size>
Login
</button>

希望这会有所帮助。