reCaptcha v3是一种由Google提供的人机验证服务,它通过分析用户行为来判断是否为机器人,而无需用户进行任何人机交互操作。与传统的reCaptcha不同,reCaptcha v3不需要用户进行验证码的输入,从而提供了更加无缝的用户体验。
reCaptcha v3的集成可以通过以下步骤进行:
<script src="https://www.google.com/recaptcha/api.js?render=您的reCaptcha v3 API密钥"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('您的reCaptcha v3 API密钥', {action: '页面标识'}).then(function(token) {
// 在此处可以将token发送到后端进行验证
});
});
</script>
请将上述代码中的您的reCaptcha v3 API密钥
替换为您在第一步中获取的API密钥,并将页面标识
替换为您当前页面的标识符,以便在后端进行验证时进行区分。
https://www.google.com/recaptcha/api/siteverify
。以下是一个使用Java语言进行后端验证的示例代码:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class RecaptchaVerifier {
public static boolean verify(String token, String secretKey) throws Exception {
String url = "https://www.google.com/recaptcha/api/siteverify";
String params = "secret=" + URLEncoder.encode(secretKey, "UTF-8") + "&response=" + URLEncoder.encode(token, "UTF-8");
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.getOutputStream().write(params.getBytes("UTF-8"));
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 解析响应结果
JSONObject jsonObject = new JSONObject(response.toString());
boolean success = jsonObject.getBoolean("success");
return success;
}
}
请将上述代码中的secretKey
替换为您在第一步中获取的API密钥,并将token
替换为前端传递的reCaptcha v3的token。
reCaptcha v3的集成可以在许多场景中使用,例如:
腾讯云提供了类似的人机验证服务,称为腾讯云验证码(CAPTCHA)。您可以访问腾讯云验证码产品介绍了解更多信息。
领取专属 10元无门槛券
手把手带您无忧上云