跳转到正文

Supabase Apple Login - 常规设置

GitHub

本指南将帮助您将 Apple Sign-In 与 Supabase Authentication 集成。Apple Sign-In 提供了一种安全且注重隐私的身份验证方式,支持 iOS、Android 和 Web 平台。

开始之前,请确保您已具备以下条件:

  1. 已创建 Supabase 项目

  2. 阅读 Apple 登录基础配置 配置 Apple OAuth 凭据指南

  3. 请按照对应平台的指南,为您的目标平台配置 Apple OAuth 凭据:

  1. 前往你的 Supabase Dashboard

  2. 点击你的项目

    Supabase 项目选择器
  3. 前往 Authentication 菜单

    Supabase 身份验证菜单
  4. 点击 Providers 选项卡

    Supabase 提供商标签页
  5. 找到 Apple 提供方

    Supabase Apple 提供商
  6. 启用 Apple 提供方

    启用 Supabase Apple 提供商
  7. 填写 Client ID 配置:

    Supabase Apple Provider Client ID
  8. 点击 Save 按钮

    保存 Supabase Apple Provider

搞定,你现在已经通过 Supabase Authentication 启用了 Apple Sign-In 🎉

完整实现包含一个 helper 函数 authenticateWithAppleSupabase() 用于处理整个 Supabase Apple Sign-In 流程。该函数会:

  • 使用平台特定配置初始化 Apple Sign-In
  • 处理认证流程(iOS 为原生流程,Android/Web 为 OAuth 重定向)
  • 从 Apple 提取 identity token
  • 使用 identity token 登录 Supabase
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(无需重定向 URL,自动使用 bundle ID)
  • Android:使用后端 edge function 的 OAuth 重定向流程(需要 Service ID)
  • Web 端:使用 OAuth 弹出窗口流程(需要 Service ID 和当前页面 URL 作为重定向地址)

该函数会返回 Apple 的 identity token,然后用它通过以下方式向 Supabase 进行身份验证: supabase.auth.signInWithIdToken().

如果你正在使用 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 中的实现细节, 双因素认证 有关双重身份验证的实现细节。