在 Android 应用程序中使用 Google reCAPTCHA

2024 年 11 月 13 日 | 阅读 3 分钟

在本教程中,我们将学习 Google reCaptcha 的工作流程,并将其集成到我们的 Android 应用程序中。 Google 的 reCaptcha 保护我们的应用程序免受恶意流量的侵害。 它使用 SafetyNet API 实现。

Google reCAPTCHA 的工作原理

通过在 Android 应用程序、SafetyNet 服务器和您的服务器之间调用网络调用来验证 Google reCAPTCHA

  • 一个 Android 应用程序使用站点密钥向 SafetyNet 服务器发出 reCAPTCHA 验证请求。
  • SafetyNet 服务器通过使用站点密钥向 Android 应用程序生成验证码令牌作为响应。
  • 验证码令牌被发送到您的服务器,以使用密钥进行验证。
  • 您的 Android 服务器向 SafetyNet 发出请求,以使用密钥验证验证码令牌。
  • SafetyNet 验证令牌响应,并返回结果为成功或失败。
  • 您的 Android 服务器通过验证令牌通知 Android 应用程序,并将结果作为成功或失败返回。
Using Google reCAPTCHA in Android Application

生成 reCAPTCHA 站点密钥和密钥

在创建 API 密钥之前,请仔细阅读服务 API 条款 https://developers.google.com/terms/。

  • 注册 Android reCAPTCHA 站点 https://g.co/recaptcha/androidsignup。
Using Google reCAPTCHA in Android Application
  • 提供标签、包名的输入详细信息,并接受 reCAPTCHA 条款和服务。
    标签:这是您密钥的唯一标签。 您可以使用您的公司或组织的名称。
    包名:这是您的 Android 应用程序的包名。
Using Google reCAPTCHA in Android Application
  • 站点密钥、密钥、客户端集成代码和服务器端代码在下一页生成。
Using Google reCAPTCHA in Android Application

集成 Google reCAPTCHA 的 Android 示例

让我们创建一个在我们的 Android 应用程序中集成 Google reCAPTCHA 的示例。

build.gradle

在 build.gradle 文件中添加以下 SafetyNet 和 Volley 依赖项。

AndroidManifest.xml

在 AndroidManifest.xml 文件中添加互联网权限。

activity_main.xml

在 activity_main.xml 文件中添加以下代码。

MainActivity.java

在 MainActivity.java 类文件中添加以下代码。 在此类中,我们使用 SafetyNet 服务器进行客户端集成,并在 JSON 字符串中获取响应。

将 SITE_KEY 和 SECRET_KEY 的值替换为您的实际站点密钥和密钥。 单击按钮时,它会调用 SafetyNet.getClient() 方法来获取站点密钥,如果返回成功,则调用 handleSiteVerify() 进行令牌验证。

Volley 库用于以下目的

  • Volley 库的 RequestQueue 在队列中维护服务器调用。
  • StringRequest 用于从您的服务器获取 JSON 字符串作为响应。
  • 如果服务器调用在时限内失败,则 setRetryPolicy() 方法会重试服务器调用。

输出

Using Google reCAPTCHA in Android Application Using Google reCAPTCHA in Android Application
Using Google reCAPTCHA in Android Application Using Google reCAPTCHA in Android Application
下一主题#