Python 谷歌在django和angular的Recaptcha
我在我的站点上安装了recaptcha(与django rest framework和angularjs一起工作),但我现在不知道如何获得g-recaptcha-response,任何人都可以展示这个示例Python 谷歌在django和angular的Recaptcha,python,angularjs,django,Python,Angularjs,Django,我在我的站点上安装了recaptcha(与django rest framework和angularjs一起工作),但我现在不知道如何获得g-recaptcha-response,任何人都可以展示这个示例 $scope.submit = function() { $http.get('https://www.google.com/recaptcha/api/siteverify').success(function (data) { $http.post
$scope.submit = function() {
$http.get('https://www.google.com/recaptcha/api/siteverify').success(function (data) {
$http.post(callbackUrl, $scope.callback).success(function (data) {
$scope.isFormActive = false;
}).error(function (data, status, headers, config) {
alert('Incorrect');
});
}).error(function (data, status, headers, config) {
alert('Incorrect');
});
};
我现在不知道如何设置参数密钥和响应
谢谢您可以通过在javascript中调用“grecaptcha.getResponse()”来获得g-recaptcha-response
来源:如果您正在使用Django REST framework(DRF),您可能需要签出以下包: 前两个是实现一个DRF recaptcha序列化器字段,您可以将其放入序列化器中,它有自己的验证器来调用google verify URL。最后一个(
django rest-captcha
package)正在使用自己的验证器再次实现序列化程序。所有软件包都在pypi上,因此您可以使用pip安装它们
前端集成依据:
视图:
网址:
基本测试调用为:
data = {"recaptcha": "token"}
response = client.post("/my/api/endpoint/", data)
assert response.status_code == 200
from rest_framework import serializers
from rest_framework_recaptcha.fields import ReCaptchaField
class ReCaptchaSerializer(serializers.Serializer):
recaptcha = ReCaptchaField()
class VerifyTokenAPI(views.APIView):
allowed_methods = ["POST"]
def post(self, request, *args, **kwargs):
serializer = ReCaptchaSerializer(data=request.data)
if serializer.is_valid():
return Response({'success': True}, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
urlpatterns = [
...
path("/my/api/endpoint/", VerifyTokenAPI.as_view()),
]
data = {"recaptcha": "token"}
response = client.post("/my/api/endpoint/", data)
assert response.status_code == 200