跳转到内容

Supabase Apple Login - General Setup

本指南将帮助您集成 Apple 登录与 Supabase 身份验证。Apple 登录提供了一种安全、注重隐私的身份验证方法,可在 iOS、Android 和 Web 平台上使用。

开始之前,请确保您拥有:

  1. 创建一个 Supabase 项目

  2. 阅读 Apple Login 通用设置 指南以设置 Apple OAuth 凭证

  3. 遵循相应的特定于平台的指南为您的目标平台设置 Apple OAuth 凭证:

在 Supabase 中启用 Apple OAuth 提供商

Section titled “在 Supabase 中启用 Apple OAuth 提供商”
  1. 转到您的 Supabase Dashboard

  2. 点击您的项目

    Supabase Project Selector
  3. 转到 Authentication 菜单

    Supabase Authentication Menu
  4. 点击 Providers 选项卡

    Supabase Providers Tab
  5. 查找 Apple 提供商

    Supabase Apple Provider
  6. 启用 Apple 提供商

    Supabase Apple Provider Enable
  7. 填充客户端 ID 配置:

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

    Supabase Apple Provider Save

好的,您现在已启用 Supabase 身份验证的 Apple 登录 🎉

完整的实现包括一个 authenticateWithAppleSupabase() 助手函数,该函数处理整个 Apple 登录流程与 Supabase。此函数:

  • 使用特定于平台的配置初始化 Apple 登录
  • 处理身份验证流程(iOS 上为原生,Android/Web 上为 OAuth 重定向)
  • 从 Apple 提取身份令牌
  • 使用身份令牌登录到 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 登录(不需要重定向 URL,自动使用包 ID)
  • Android: 使用带有后端 edge function 的 OAuth 重定向流程(需要服务 ID)
  • Web: 使用 OAuth 弹出窗口流程(需要服务 ID 和当前页面 URL 作为重定向)

该函数返回来自 Apple 的身份令牌,然后将其用于使用 supabase.auth.signInWithIdToken() 通过 Supabase 进行身份验证。