Supabase Apple Login en Android
Copie 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 le ayudará a integrar el inicio de sesión de Apple con la autenticación de Supabase en Android. Se asume que ya ha completado:
Paso 1: Desplegar la función de borde del servidor de backend
Título de la sección “Paso 1: Desplegar la función de borde del servidor de backend”Primero, debemos desplegar la función de borde de Supabase que manejará la devolución de llamada de autenticación de Apple.
-
Navegue a su directorio de proyecto de Supabase
Ventana de terminal cd your-project/supabase -
Crear la función de borde Ventana de terminal
Copiar a portapapeles supabase functions new apple-signin-callback -
Copy the edge function code
The complete implementation of the edge function is available in the ejemplo de aplicación.
Copie los siguientes archivos a 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 (incluyejosebiblioteca para la firma de JWT)
-
Configure 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á. Actualice su
supabase/config.tomlarchivo:[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" -
Despliega la función
Ventana de terminal supabase functions deploy apple-signin-callback -
Obtén la URL de tu función
Después de la despliegue, 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 el
apple-signin-callbackURL de la función para copiarla.
- Abrir
Paso 2: Configura el Portal de Desarrolladores de Apple
Sección titulada “Paso 2: Configura el Portal de Desarrolladores de Apple”Ahora necesitamos configurar el Portal de Desarrolladores de Apple con la URL del backend y obtener todos los valores necesarios.
-
Sigue el Guía de Configuración de Apple Login para Android
Completa el Guía de configuración de inicio de sesión de Apple para Android a:
- Crear un ID de servicio
- Generar una clave privada (archivo .p8)
- Obtener su ID de equipo y ID de clave
- Configurar la URL de retorno
-
Establecer la URL de retorno en el portal de desarrolladores de Apple
Al configurar la URL de retorno en el portal de desarrolladores de Apple (paso 6.9 de la guía de Apple), utilice la URL de función de borde de Supabase:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportante: Utilice la URL de función de borde de Supabase
NO utilice 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 del servidor de backend personalizado. Para la integración con Supabase, debes usar en su lugar la URL de la función de borde de Supabase.
-
ID DE EQUIPO DE APPLE
Exacto. Exacto
- La URL de retorno debe coincidir exactamente con lo que configuras aquí. Apple es muy estricto con la coincidencia de la URI de redireccionamiento.: Su ID de equipo de desarrollador de Apple
- APPLE_KEY_ID: El ID de clave desde el portal de desarrollador de Apple
- APPLE_PRIVATE_KEY: Su archivo de clave privada .p8 (necesita 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
Sección titulada “Paso 3: Establecer secretos de Supabase”Ahora necesitamos configurar las variables de entorno (secretos) para la función de borde de Supabase.
-
Codifica tu clave privada
Primero, codifica tu clave privada de Apple (.p8) a base64:
Ventana de terminal base64 -i AuthKey_XXXXX.p8Copie la salida completa (es una cadena larga de un solo lado).
-
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 proyecto de Supabase
- Navegar a Funciones de la Orilla → Configuración → Secretos
- Agregar cada variable de secreto con su valor
Paso 4: Utiliza la Ayuda de Autenticación
Título de la sección “Paso 4: Utiliza la Ayuda de Autenticación”Ahora puedes utilizar la ayuda de autenticación en tu aplicación code.
Implementación
Sección titulada “Implementación”La implementación completa está disponible en el archivo del supabaseAuthUtils.ts ejemplo de aplicación
Usando la Ayuda de Autenticación
Título de la sección “Usando la Ayuda 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 de asistencia
Sección titulada “Actualizar la función de asistencia”Cuando utilices la authenticateWithAppleSupabase función de asistencia, debes actualizar los siguientes valores para que coincidan con tu configuración: Actualizar
-
- Establece esto en la URL de tu función de borde de Supabase:
redirectUrlCopiar a portapapelesconst redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
- Establece esto en tu ID de Servicio de Apple:
clientIdCopiar a portapapelesawait SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
completa para referencia. Paso 5: Probar la Integración
Sección titulada “Paso 5: Probar la Integración”
Compilar y ejecutar su aplicación de Android-
__CAPGO_KEEP_0__
Ventana de terminal npx cap sync androidnpx cap run android -
Probar el flujo de autenticación
- Toca 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
-
Verificar 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
- Redirige a Apple a:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - La función de Edge intercambia code por tokens
- La función de Edge 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 registra en Supabase con el token de identidad
Solución de problemas
Sección titulada “Solución de problemas”Si falla la autenticación:
- Diferencia en la URI de redirección: Verifique que la URL de retorno en el Portal de Desarrolladores de Apple coincida exactamente con
APPLE_REDIRECT_URIsecreto - El enlace profundo no funciona: Verifica que
AndroidManifest.xmlel filtro de intención coincida con tuBASE_REDIRECT_URL - Faltan secretos: Verifica que todos los secretos estén configurados correctamente utilizando
supabase secrets list - Falló el intercambio de token: Verifica los registros de función de borde en la consola de Supabase para obtener mensajes de error detallados
- No se recibe la devolución de llamada: Asegúrate de que
onNewIntentesté implementado correctamente en MainActivity - Revisa la aplicación de ejemplo code para obtener referencias
Cómo Funciona
Título de la sección “Cómo Funciona”En Android, Apple Sign-In utiliza un flujo de redirección OAuth:
- Iniciación: El plugin se inicia con su ID de Servicio y URL de redirección de backend
- Flujo de OAuth: Abre una ventana del navegador/Chrome Custom Tab con la página de OAuth de Apple
- Llamada de Vuelta al Backend: Apple redirige a su función de borde 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 tokens de Apple
- Redirección de Enlace Profundo: La función de borde redirige de regreso a tu aplicación con el token de identidad
- Autenticación de Supabase: La aplicación recibe el token y se registra en Supabase
Esta flujo es necesario porque Apple no proporciona soporte nativo de Android para Iniciar sesión con Apple.
Sigue adelante desde Supabase Apple Login en Android
Sección titulada “Sigue adelante 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, Usando @capgo/capacitor-social-login para el detalle de implementación en @capgo/capacitor-login-social @capgo/capacitor-clave-almacenada para el detalle de implementación en @capgo/capacitor-clave-almacenada @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y autenticación de dos factores para el detalle de implementación en autenticación de dos factores.