我正在尝试在我的AngularJS Web应用程序中实现隐形reCAPTCHA。根据他们的文档,我应该在登录表单的提交按钮中添加一个名为“data-callback”的属性。但是,我使用ng-click将http请求的功能附加到按钮。那么我应该把“data-callback”属性的值放入什么?另外,我怎么知道recaptcha结果是否成功,并获得g-recaptcha-response以使用我的http请求发送到服务器?
有一个角度包装器,但如果像我一样,你想使用原始的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>
希望这可以帮助。