跳到内容

Android 上的 Apple 登录

GitHub

, Sign in with Apple ,

,

  • ,
  • ,

,

,

,

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

创建服务 ID

创建服务 ID
  1. 登录到 苹果开发者门户.

  2. 点击 Identifiers.

    苹果开发者门户标识符部分

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

    苹果开发者门户标识符屏幕
    1. 确保这个字段显示 App IDs
    2. 确保您可以找到您的 App ID。
  3. 确保您的应用 Sign in with Apple 能力已启用

    1. 点击您的应用 从列表中选择您的应用
    2. 确保您的应用 Sign in with Apple 能力已启用 启用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

    苹果开发者门户中的Keys section
  3. 点击加号图标

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

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

    启用和配置使用Apple登录的密钥
  6. 选择主要 App ID,然后按 Save

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

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

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

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

    下载的密钥文件

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

  1. 前往 本网站 向下滚动

  2. 找到 Team ID

    开发者帐户中的团队 ID 位置

如图所示,后端执行一个名为 Redirect back to the app的步骤。这需要对应用进行手动更改。

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

      Android Studio中的AndroidManifest.xml文件
    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 验证

protectedTokens env targetLanguage

  • ANDROID_SERVICE_ID = 服务 ID
  • IOS_SERVICE_ID = 应用 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"
}

函数的使用方法与 IOS 一致,详见下文 login 然而, 方法有一些变化。复制到剪贴板 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 IDs 类型
  3. 点击类型 App 点击 Continue

    选择 App 类型
  4. 输入描述和 App ID

    输入应用描述和 Bundle 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 的实现细节, 和 双因素认证 对于双因素认证的实现细节。