跳过内容

Android 上的 Apple 登录

GitHub

苹果登录在 Android 上是hacky。苹果没有对 Android 的官方支持 Sign in with Apple 在 Android 上,所以解决方案略微hacky。

Android 当前使用 Chrome tabs 来显示 OAuth2 网站。这种方法存在以下挑战:

  • 配置困难
  • 需要后端

理解 Android 流程

标题:理解 Android 流程

让我们使用一个图表来解释 Android 流程:

现在您了解了挑战和流程,让我们开始配置。

  1. 登录 Apple Developer Portal.

  2. 点击 Identifiers.

    Apple Developer Portal Identifiers

    您应该看到一个类似这样的屏幕:

    Apple Developer Portal Identifiers
    1. 确保这个字段显示 App IDs
    2. 确保您可以找到您的 App ID。
  3. 确保该功能在您的应用程序中启用 Sign in with Apple 为您的应用程序启用该功能

    1. 点击您的应用程序 从列表中选择您的应用程序
    2. 确保该功能已启用 Sign in with Apple 启用 Sign in with Apple 功能 如果它没有启用,请启用它
    3. 返回所有
  4. 所有标识符导航按钮 All Identifiers

    点击
  5. 并转到 App Ids 返回 Services IDs

    导航到服务 ID 部分
  6. 创建新标识符

    1. 点击加号按钮

      添加新服务 ID 按钮
    2. 选择 Servcice IDs 并点击 Continue

      选择服务 ID 选项
    3. 输入描述和标识符并点击 Continuie.

      输入服务 ID 详情
    4. 请核实详细信息并点击 Register

      确认服务 ID 注册
    5. 点击新创建的服务

      选择新创建的服务 ID
    6. 启用 Sign in with Apple 选项

      为服务 ID 启用 Apple 登录
    7. 配置 Sign In with Apple

      配置 Apple 登录按钮
    8. 确保设置为上一步配置的 App ID Primary App ID 设置主 App ID 下拉菜单

      添加您将在后端托管的域名
    9. 添加您将在后端托管的域名

      设置域名和返回 URL 字段
    10. 确认数据并点击 Done

      确认域名和返回 URL 配置
    11. 点击 Continue

      继续配置服务
    12. 点击 Save

      保存配置服务

创建密钥

创建密钥
  1. 返回所有 All Identifiers

    所有标识符
  2. 点击 Keys

    苹果开发者门户中的密钥部分
  3. 点击加号图标

    添加新密钥
  4. 命名您的密钥

    输入密钥名称字段
  5. 选择 Sign in with Apple 并点击 Configure

    为密钥启用和配置 Sign in with Apple
  6. 选择主 App ID,按 Save

    为密钥选择主 App ID
  7. 点击 Continue

    继续按钮用于配置密钥
  8. 点击 Register

    注册按钮用于创建密钥
  9. 复制密钥 ID 并下载密钥。

    密钥 ID 和下载按钮屏幕
  10. 找到下载的密钥并将其保存在后端文件夹中。

    下载的密钥文件

获取团队 ID

获取团队 ID

为了使用 Login with Apple 在 Android 上,您需要获取 Team ID它将在后端使用。

  1. 前往 这个网站 并滚动到底部

  2. 找到 Team ID

    团队 ID 的开发者帐户位置

您在图表中看到的后端执行一个名为“”的步骤 Redirect back to the app。这需要手动修改您的应用。

  1. 修改 AndroidManifest.xml
    1. 打开文件,我将使用 AndroidStudio

      AndroidManifest.xml 文件在 Android Studio 中
    2. 找到 MainActivity 并添加以下意图过滤器

      MainActivity 中添加意图过滤器 code
      <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="capgo-demo-app" android:host="path" />
      </intent-filter>
  2. 修改 MainActivity
    1. 请打开 MainActivity

      Android Studio 中的 MainActivity.java 文件
    2. 添加以下内容:code

      Code用于在 MainActivity 中处理深度链接
      @Override
      protected void onNewIntent(Intent intent) {
      String action = intent.getAction();
      Uri data = intent.getData();
      if (Intent.ACTION_VIEW.equals(action) && data != null) {
      PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");
      if (pluginHandle == null) {
      Log.i("Apple Login Intent", "SocialLogin login handle is null");
      return;
      }
      Plugin plugin = pluginHandle.getInstance();
      if (!(plugin instanceof SocialLoginPlugin)) {
      Log.i("Apple Login Intent", "SocialLogin plugin instance is not SocialLoginPlugin");
      return;
      }
      ((SocialLoginPlugin) plugin).handleAppleLoginIntent(intent);
      return;
      }
      super.onNewIntent(intent);
      }

对于 Android,需要一个后端,但配置后端也会影响 IOS。以下是一个例子 这里

此示例提供以下内容:

  • 一个简单的 JSON 数据库
  • 从 Apple 服务器请求 JWT 的方法
  • 一个简单的 JWT 验证

部分将看起来像这样: env 服务ID

  • ANDROID_SERVICE_ID 应用ID
  • IOS_SERVICE_ID 复制到剪贴板
env: {
PRIVATE_KEY_FILE: "AuthKey_U93M8LBQK3.p8",
KEY_ID: "U93M8LBQK3",
TEAM_ID: "UVTJ336J2D",
ANDROID_SERVICE_ID: "ee.forgr.io.ionic.starter.service2",
IOS_SERVICE_ID: "me.wcaleniewolny.test.ionic.vue",
PORT: 3000,
REDIRECT_URI: "https://xyz.wcaleniewolny.me/login/callback",
BASE_REDIRECT_URL: "capgo-demo-app://path"
}

标题为“使用插件”

= Service ID

使用方式与IOS相同,具体请参见相关说明。 login 函数的使用方式没有变化,和IOS相同。请参见相关说明。 然而但是 initialize 复制到剪贴板

await SocialLogin.initialize({
apple: {
clientId: 'ee.forgr.io.ionic.starter.service2',
redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback'
}
})

创建应用

创建应用
  1. 如果您没有 App ID,请点击加号按钮

    添加新标识符加号按钮
  2. 选择 App IDs 选择 App ID 类型

    点击类型
  3. 选择 App 类型 App __CAPGO_KEEP_0__ Continue

    __CAPGO_KEEP_0__
  4. 输入描述和应用 ID

    输入应用描述和包 ID
  5. 启用 Sign with Apple 功能

    启用 Sign in with Apple 功能
  6. 点击 Continue

    应用注册继续按钮
  7. 确认详细信息并点击 Register

    确认应用注册详细信息

在 Android 上从 Apple 登录继续

标题:在 Android 上从 Apple 登录继续

如果您正在使用 在 Android 上使用 Apple 登录 为了规划身份验证和帐户流程,连接它 使用 @capgo/capacitor-social-login 对于在使用 @capgo/capacitor-social-login 中的原生能力 @capgo/capacitor-social-login 对于在 @capgo/capacitor-social-login 中的实现细节 @capgo/capacitor-passkey 对于在 @capgo/capacitor-passkey 中的实现细节 @capgo/capacitor-native-biometric 对于在 @capgo/capacitor-native-biometric 中的实现细节 两因素身份验证 对于在两因素身份验证中的实现细节