Supabase Apple Login en Android
Copia un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Requisitos previos
Sección titulada “Requisitos previos”Esta guía te ayudará a integrar Apple Sign-In con la autenticación de Supabase en Android. Se asume que ya has completado:
Paso 1: Desplegar la función de servidor de borde de backend
Sección titulada “Paso 1: Desplegar la función de servidor de borde de backend”Primero, debemos desplegar la función de borde de Supabase que manejará el llamado de retorno de Apple OAuth.
-
Navegue a su directorio de proyecto de Supabase
ventana de terminal cd your-project/supabase -
Crear la función de borde (si no existe)
ventana de terminal supabase functions new apple-signin-callback -
Copiar la función de borde code
La implementación completa de la función de borde se encuentra en la aplicación de ejemplo.
Copie los siguientes archivos en su proyecto:
supabase/functions/apple-signin-callback/index.ts- Función de borde principal codesupabase/functions/apple-signin-callback/deno.json- Mapa de importación para dependencias (incluyejose- Biblioteca para firmar JWT)
-
- Configurar la verificación de JWT
- El punto final de llamada OAuth de Apple debe ser público (no se requiere autenticación) porque Apple lo redirigirá a él. Actualice su
supabase/config.toml- Copiar al portapapeles[functions.apple-signin-callback]enabled = trueverify_jwt = false # Important: Set to false for public OAuth callbackimport_map = "./functions/apple-signin-callback/deno.json"entrypoint = "./functions/apple-signin-callback/index.ts" -
- Ventana de terminal
file:__CAPGO_KEEP_0__ supabase functions deploy apple-signin-callback -
Obtén la URL de tu función
Después de la implementación, obtendrás una URL como:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSi no la encuentras, puedes hacer lo siguiente:
- Abrir
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Haz clic en la
apple-signin-callbackURL de la función para copiarla.
- Abrir
Step 2: Configura el Portal de Desarrolladores de Apple
Sección titulada “Step 2: Configura el Portal de Desarrolladores de Apple”Ahora necesitamos configurar el Portal de Desarrolladores de Apple con la URL de backend y obtener todos los valores necesarios.
-
Sigue el Guía de Configuración de Apple Login para Android
Complete el Guía de configuración de Apple Login para Android hasta:
- Crear un ID de servicio
- Genera una clave privada (.p8 archivo)
- Obtén tu ID de Equipo y tu ID de Llave
- Configura la URL de Retorno
-
Establece la URL de Retorno en el Portal del Desarrollador de Apple
Cuando configures la URL de Retorno en el Portal del Desarrollador de Apple (paso 6.9 de la guía de Apple), utiliza tu URL de Función de Borde de Supabase:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportante: Utiliza la URL de Función de Borde de Supabase
No utilices la URL de redireccionamiento del Guía de configuración de inicio de sesión de Apple para Android. Esa guía utiliza una URL de servidor de backend personalizado. Para la integración de Supabase, debes debes utilizar en su lugar tu URL de Función de Borde de Supabase.
-
Recopile todos los valores requeridos
Después de completar la guía de configuración de Apple, deberías tener:
- ID DE EQUIPO DE APPLE: Su ID de equipo de desarrollador de Apple
- ID DE CLAVE DE APPLE: La clave ID del portal de desarrolladores de Apple
- LLAVE PRIVADA DE APPLE: Su archivo de clave privada .p8 (debe estar codificado en base64)
- ANDROID_SERVICE_ID: Su ID de Servicio de Apple (por ejemplo,
com.example.app.service) - BASE_REDIRECT_URL: Su URL de enlace profundo (por ejemplo,
capgo-demo-app://path)
Paso 3: Establecer secretos de Supabase
Título de sección “Paso 3: Establecer secretos de Supabase”Ahora necesitamos configurar las variables de entorno (secretos) para la función de borde de Supabase.
-
Codifique su clave privada
Primero, codifique su clave privada de Apple (.p8 archivo) a base64:
ventana de terminal base64 -i AuthKey_XXXXX.p8Copiar el contenido completo (es una sola cadena larga).
-
Establecer secretos utilizando Supabase CLI
ventana de terminal supabase secrets set APPLE_TEAM_ID=your_team_idsupabase secrets set APPLE_KEY_ID=your_key_idsupabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_keysupabase secrets set ANDROID_SERVICE_ID=your.service.idsupabase secrets set BASE_REDIRECT_URL=your-app://pathsupabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback -
Alternativa: Establecer secretos en la consola de Supabase
Si prefieres utilizar la consola:
- Ir a la consola de tu proyecto de Supabase
- Navegar a Funciones de borde → Configuración → Secretos
- Agregar cada variable de secreto con su valor
Paso 4: Utilice el Asistente de Autenticación
Sección titulada “Paso 4: Utilice el Asistente de Autenticación”Now you can use the authentication helper in your app code.
Implementación
Sección titulada “Implementación”La implementación completa está disponible en el archivo del ejemplo de aplicación’s supabaseAuthUtils.ts archivo.
Usando el Asistente de Autenticación
Sección titulada “Usando el Asistente 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);}Actualizar la Función del Asistente
Sección titulada “Actualizar la Función del Asistente”Cuando se utilice el authenticateWithAppleSupabase función auxiliar, usted debe actualizar los siguientes valores para que coincidan con su configuración:
-
Actualizar
redirectUrl- Establezca esto a su URL de función de Supabase Edge:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Actualizar
clientId- Establezca esto a su 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 AndroidredirectUrl: redirectUrl,},});
Consulte el implementación completa para referencia.
Paso 5: Pruebe la Integración
Título de la sección “Paso 5: Pruebe la Integración”-
Construya y ejecute su aplicación Android
ventana de terminal npx cap sync androidnpx cap run android -
Pruebe el flujo de autenticación
- Presione el botón “Iniciar sesión con Apple”
- Deberías ver la página de OAuth de Apple en un navegador
- Después de autenticarte, deberías ser redirigido de regreso a tu aplicación
- Revisa los registros del consola para cualquier error
-
Verifica el flujo
El flujo completo debería ser:
- El usuario toca “Iniciar sesión con Apple”
- La aplicación abre el navegador con Apple OAuth
- El usuario se autentica con Apple
- Apple redirige a:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - La función de borde intercambia code por tokens
- La función de borde redirige a:
your-app://path?id_token=...&access_token=... - La aplicación de Android recibe el enlace profundo y procesa el token de identidad
- La aplicación se inicia sesión en Supabase con el token de identidad
Solución de problemas
Sección titulada “Solución de problemas”Si falla la autenticación:
- Error de URI de redireccionamiento: Verifique que la URL de retorno en el Portal del Desarrollador de Apple coincida exactamente con
APPLE_REDIRECT_URIsecret - Enlace profundo no funciona: Verifique que
AndroidManifest.xmlfiltro de intención coincida con suBASE_REDIRECT_URL - Secretos faltantes: Verifique que todos los secretos estén configurados correctamente utilizando
supabase secrets list - Intercambio de tokens falla: Ver los registros de función de borde en Supabase Dashboard para obtener mensajes de error detallados
- No recibe la aplicación la llamada de vuelta: Asegúrese de que
onNewIntentesté implementado correctamente en MainActivity - Revisar el ejemplo de aplicación code para referencia
Cómo Funciona
Sección titulada “Cómo Funciona”En Android, Apple Sign-In utiliza un flujo de redirección OAuth:
- Inicialización: El plugin se inicia con su ID de Servicio y la URL de redireccionamiento de backend
- Flujo de OAuth: Se abre un navegador/ventana personalizada de Chrome con la página de OAuth de Apple
- Llamada de retorno de backend: Apple redirige a su función de borde de Supabase con una autorización code
- Intercambio de token: La función de borde intercambia el code por tokens utilizando el punto de conexión de token de Apple
- Redireccionamiento de enlace profundo: La función de borde redirige de nuevo a su aplicación con el token de identidad
- Autenticación de Supabase: La aplicación recibe el token y se inicia en Supabase
Este flujo es necesario porque Apple no proporciona soporte nativo de Android para Iniciar sesión con Apple
Continúa desde Supabase Apple Login en Android
Sección titulada “Continúa desde Supabase Apple Login en Android”Si estás utilizando Supabase Apple Login en Android para planificar la autenticación y los flujos de cuenta, conecta con Usando @capgo/capacitor-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login @capgo/capacitor-social-login para el detalle de implementación en @capgo/capacitor-social-login @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey @capgo/capacitor-native-biometric para los detalles de implementación en @capgo/capacitor-native-biometric, y Autenticación en dos factores para los detalles de implementación en Autenticación en dos factores.