跳转到正文

iOS 端 Supabase Apple Login 设置

GitHub

本指南将帮助你在 iOS 上将 Apple Sign-In 与 Supabase Authentication 进行集成。前提是你已完成以下步骤:

完整实现位于 示例应用的 supabaseAuthUtils.ts 文件。本指南介绍其核心概念及使用方法。

本指南中介绍的 authenticateWithAppleSupabase 函数负责处理整个身份验证流程:

import { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();
if (result.success) {
console.log('Signed in:', result.user);
// Navigate to your authenticated area
} else {
console.error('Error:', result.error);
}

在 iOS 上,Apple Sign-In 使用原生实现:

  1. 初始化:该插件会自动使用你应用的 bundle ID(无需 clientId 所需)
  2. 原生登录: 使用 Apple 原生的 Sign in with Apple 按钮和身份验证流程
  3. 身份令牌(Identity Token):Apple 返回包含用户信息的身份令牌(JWT)
  4. Supabase 身份验证:使用以下方式将身份令牌发送到 Supabase signInWithIdToken()

辅助函数会自动检测 iOS 平台并完成相应配置。

  • iOS 会自动使用应用的 bundle ID 进行 Apple Sign-In
  • 请确保您的 bundle ID 与 Apple Developer Portal 中的配置一致
  • bundle ID 必须已启用 “Sign in with Apple” 能力

在 Supabase 中,用以下信息配置 Apple provider:

  • Client ID:您的 iOS App ID (bundle ID) - 例如: app.capgo.plugin.SocialLogin

如果您同时使用 Android/Web,需要在 Supabase 的 Client ID 字段中同时提供 App ID 和 Service ID(用逗号分隔)。

如果身份验证失败:

  • Bundle ID 不匹配: 请检查 Xcode 和 Apple Developer Portal 中的 Bundle ID 是否一致
  • 未启用 Capability: 请确保已在 Xcode 中启用 “Sign in with Apple” Capability
  • Supabase 配置问题: 请检查 Supabase Apple provider 设置中的 App ID 配置是否正确
  • Token 验证失败: 请检查是否已从 Apple 成功接收到 identity token
  • 请查阅 示例应用 code 供参考

继续完成 iOS 端 Supabase Apple Login 设置

章节标题:“继续完成 iOS 端 Supabase Apple Login 配置”

如果你正在使用 iOS 端 Supabase Apple Login 设置 用来规划身份验证和账户流程,并将它与 使用 @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 中的实现细节, 双因素认证 有关双重身份验证的实现细节。