使用AngularJS进行隐形Google reCaptcha

问题描述 投票:3回答:1

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

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

javascript angularjs recaptcha
1个回答
10
投票

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

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

所以你应该这样做:

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

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

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

在你的HTML中:

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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.