一尘不染

AngularJS的隐形Google reCaptcha

angularjs

我正在尝试在AngularJS网络应用程序中实现 不可见的
reCAPTCHA。根据他们的文档,我应该在登录表单的提交按钮上添加一个名为“数据回调”的属性。但是,我使用ng-
click将http请求的功能附加到按钮。那我应该在“数据回调”属性的值中输入什么呢?另外,如何知道recaptcha结果是否成功,并获取g-
recaptcha-response与我的http请求一起发送到服务器?

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


阅读 211

收藏
2020-07-04

共1个答案

一尘不染

有一个角度包装器,但是如果像我一样,您想使用原始的JavaScript库,这就是这样做的方法:

数据回调需要一个Java脚本全局函数,因此在$ scope中使用函数将不起作用..我想到的解决方案是创建一个继承角度函数的全局函数。

所以你应该做:

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

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

Google不可见的reCaptcha会向您发送令牌,以便您可以验证服务器端的用户。

并在您的html中:

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

希望这可以帮助。

2020-07-04