跳过内容

苹果登录

在 Android 上使用 Apple 登录是hacky。Apple 对 Android 没有官方支持,所以解决方案略hacky。 Sign in with Apple Android 当前使用 Chrome tabs 来显示 OAuth2 网站。这一方法存在以下挑战:

配置困难

  • __CAPGO_KEEP_0__
  • 需要一个后端

了解安卓上的流程

标题:了解安卓上的流程

让我们使用一个图表来解释安卓上的流程:

现在您了解了挑战和流程,开始配置吧

  1. 登录到 苹果开发者门户.

  2. 点击 Identifiers.

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

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

    Apple Developer Portal 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

      继续服务配置按钮
    11. 点击 Continue

      保存服务配置按钮
    12. __CAPGO_KEEP_0__ Save

      __CAPGO_KEEP_0__

生成密钥

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

    所有标识符
  2. 点击 Keys

    Apple Developer Portal 中的密钥部分
  3. 点击加号

    添加新密钥
  4. 命名密钥

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

    启用并配置 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

    开发者帐户中的

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

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

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

      在 MainActivity 中添加 Intent 过滤器 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 = Service ID

  • ANDROID_SERVICE_ID = App 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"
}

然而 login __CAPGO_KEEP_0__ __CAPGO_KEEP_1__, 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 并点击 Continue

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

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

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

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

    确认应用注册详细信息