Pulsa para ir al contenido principal

Supabase Apple Login en Web

GitHub

Esta guía te ayudará a integrar Sign-In de Apple con la autenticación de Supabase en Web. Se supone que ya has completado:

La implementación completa está disponible en el archivo de la aplicación de ejemplo. Esta guía explica los conceptos clave y cómo utilizarlo. supabaseAuthUtils.ts Usando la Ayuda de Autenticación

El authenticateWithAppleSupabase función maneja todo el flujo de autenticación:

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);
}

Sección titulada “Cómo Funciona”

  1. En Web, Apple Sign-In utiliza un flujo de OAuth popup:Inicialización
  2. : La plugin se inicia con su ID de Servicio y la URL actual de la página como la URL de redirecciónOAuth Popup
  3. : Abre una ventana emergente con la página de OAuth de Apple: El usuario se autentica con Apple en la ventana emergente
  4. Token de Identidad: Apple devuelve un token de identidad (JWT) que contiene información del usuario
  5. Autenticación de Supabase: El token de identidad se envía a Supabase mediante signInWithIdToken()

La función de ayuda detecta automáticamente la plataforma web y configura todo correctamente.

  • La plataforma web requiere su ID de Servicio de Apple (igual que Android)
  • El ID de Servicio debe estar configurado en el Portal de Desarrolladores de Apple con las URL de devolución correctas
  • Asegúrate de que tu dominio esté agregado a los dominios permitidos en el Portal de Desarrolladores de Apple
  • En web, la URL de redirección se establece automáticamente en window.location.href (URL de la página actual)
  • Debes asegurarte de que coincida con una de las URL de retorno configuradas en el Portal de Desarrolladores de Apple
  • Asegúrate de que estén configuradas tanto la URL con como sin barra de dirección en el Portal de Desarrolladores de Apple

En Supabase, configura tu proveedor de Apple con:

  • ID del cliente: Tu ID de Servicio de Apple (por ejemplo, com.example.app.service)

If necesariamente estás utilizando iOS, necesitarás proporcionar tanto el ID de la aplicación como el ID de Servicio en el campo ID del cliente de Supabase (separado por comas).

Cuando se utiliza la authenticateWithAppleSupabase función de ayuda, tú debes actualizar el clientId a que coincida con tu ID de Servicio de Apple:

await SocialLogin.initialize({
apple: {
clientId: isIOS
? undefined // iOS uses bundle ID automatically
: 'your.service.id.here', // Your Apple Service ID for Web and Android
redirectUrl: redirectUrl,
},
});

Si falla la autenticación:

  • Diferencia de ID de Servicio: Verify your Service ID matches in both Apple Developer Portal and your code
  • URL de retorno no configurada: Asegúrate de que la URL actual de tu página (con y sin barra de dirección) esté configurada en el Portal de Desarrolladores de Apple
  • Ventana emergente bloqueada: Revisa las configuraciones del navegador - algunos navegadores bloquean ventanas emergentes por defecto
  • Dominio no permitido: Verifica que tu dominio esté agregado a los dominios permitidos en el Portal de Desarrolladores de Apple
  • Configuración de Supabase: Verifique que su ID de Servicio esté correctamente configurado en los ajustes del proveedor de Apple de Supabase
  • Revisar el ejemplo de aplicación code para referencia

Si está utilizando Supabase Apple Login en Web para planificar la autenticación y los flujos de cuenta, conecte Usando @capgo/capacitor-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login, @capgo/capacitor-login-social para los detalles de implementación en @capgo/capacitor-login-social @capgo/capacitor-passkey para los detalles de implementación en @capgo/capacitor-passkey @capgo/capacitor-biometría-nativa para los detalles de implementación en @capgo/capacitor-biometría-nativa, y Autenticación en dos factores para los detalles de implementación en Autenticación en dos factores