我正在尝试在AngularJS网络应用程序中实现 不可见的 reCAPTCHA。根据他们的文档,我应该在登录表单的提交按钮上添加一个名为“数据回调”的属性。但是,我使用ng- click将http请求的功能附加到按钮。那我应该在“数据回调”属性的值中输入什么呢?另外,如何知道recaptcha结果是否成功,并获取g- recaptcha-response与我的http请求一起发送到服务器?
https://developers.google.com/recaptcha/docs/invisible
有一个角度包装器,但是如果像我一样,您想使用原始的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>
希望这可以帮助。