将 reCAPTCHA Enterprise 与 iOS 应用集成

本页介绍了如何在您的 iOS 应用中集成 reCAPTCHA Enterprise。由于移动设备在屏幕尺寸、性能以及应用界面方面存在差异,视觉 reCAPTCHA 挑战(我不是机器人)不适用于移动应用。有关替代的摩擦方法,请参阅配置多重身份验证 (MFA)

准备工作

  1. 选择在您的环境中设置 reCAPTCHA Enterprise 的最佳方法,并完成设置。

  2. 进行安全审核后,可访问 iOS SDK。请与我们的销售团队联系,在您的网站上启用此功能。

  3. 为 iOS 应用平台创建 reCAPTCHA 密钥

  4. 根据集成方法,让您的销售代表授予您以下访问权限之一:reCAPTCHA Enterprise CocoaPods 代码库、Swift Package Manager 代码库或 iOS SDK 下载

  5. 如需准备开发环境,请执行以下操作:

    • 下载并安装最新版本的 Xcode,并创建一个新的空白 iOS 单视图应用。
    • 下载并安装 CocoaPods

      reCAPTCHA Enterprise pod 相当大。但是,在安装 reCAPTCHA Enterprise 后,由于动态链接的用户 IPA 大小和用户安装的应用大小分别约为 598 KB 和 1.786 MB。

    • 使用 CocoaPods、Swift Package Manager 或从下载页面下载 SDK。

      CocoaPods

      1. 生成 git cookie。
      2. 创建一个 Podfile,并将以下几行代码添加到您的 Podfile:

        source "https://cpdc-eap.googlesource.com/RecaptchaEnterprise.git"
        source "https://github.com/CocoaPods/Specs.git"
        
        pod "RecaptchaEnterprise", "17.0.0"
        
      3. 运行 pod update 以安装所需的依赖项。

      Swift Package Manager

      1. 在 XCode 中,选择 File > Add Package,然后在 SearchEnter Package 网址 字段中输入以下网址: https://github.com/GoogleCloudPlatform/recaptcha-enterprise-mobile-sdk
      2. 在“XCode”对话框中,输入您为销售代表提供的帐号用户名,以及使用 GitHub 的说明创建的个人访问令牌。个人访问令牌必须具有 XCode 登录对话框中列出的范围。

        Xcode 会安装 SDK 及其必需的依赖项。

      直接下载

      iOS SDK 下载页面下载 SDK 二进制文件。

配置应用

使用 CocoaPods,您可以使用 Swift 或 Objective-C 编写应用。如需配置您的应用,请执行以下操作:

  1. 要确保链接器标志上列有 -ObjC,请依次转到目标 > 构建设置 > 所有 > 链接,然后验证 Other Linker Flags 是否显示 -ObjC

  2. 如果您的应用是用 Swift 编写的,请创建一个 Objective-C 迁移桥头,并包含以下导入:

    #import <recaptcha/recaptcha.h>
    

将 reCAPTCHA Enterprise 与 iOS 应用集成

要将 reCAPTCHA Enterprise 与您的 iOS 应用集成,请在 Xcode 中执行以下步骤:

  1. 要使用您创建的 reCAPTCHA 密钥实例化 SDK,请使用以下代码更新 ViewController

    Swift

    let recaptchaClient = RecaptchaClient(siteKey: "reCAPTCHA_KEY_iOS")
    

    Objective-C

    RecaptchaClient *recaptchaClient = [[RecaptchaClient alloc] initWithSiteKey:@"reCAPTCHA_KEY_iOS"];
    

  2. 创建一个调用 reCAPTCHA Enterprise 的按钮并触发您嵌入 ViewController 中的代码:

    1. 在分镜脚本中,创建一个按钮。
    2. ViewController 中创建与您创建的按钮关联的操作。
    3. 使用以下代码段调用 execute() 方法,以返回 reCAPTCHA 令牌:

      Swift

      recaptchaClient.execute(RecaptchaAction(action: .login)) { token, error in
       if let recaptchaToken = token {
              print(recaptchaToken.recaptchaToken)
           }
            if let error = error {
              print(error)
            }
       }
      

      Objective-C

       [recaptchaClient execute: [[RecaptchaAction alloc] initWithAction: RecaptchaActionTypeLogin] onFinishedExecute: ^ (RecaptchaToken * _Nullable token, RCARecaptchaError * _Nullable error) {
      
           if (error) {
               NSLog (@ "% @", error);
           } else {
               NSLog (@ "% @", token);
           }
      
       }];
      
      

  3. 测试您的应用:

    1. 要清理 Xcode 构建环境,请在产品菜单中点击清理构建文件夹
    2. 如要运行该应用程序,请从 Product 菜单中单击运行
    3. 在已加载的应用中,点击您之前创建的 reCAPTCHA 按钮。
    4. 观察调试输出窗口,如果集成正确完成,将返回一个 reCAPTCHA 令牌(字母数字字符串)。

iOS API 参考

请与您的销售代表联系,以获取 iOS SDK 下载页面的访问权限。iOS SDK 下载页面详细介绍了 reCAPTCHA 隐私权标签。

后续步骤