Supabase Apple Login en Android
Copie una solicitud de configuración con los pasos de instalación y la guía de markdown completa para este complemento.
Sección titulada “Requisitos previos”
Configuración lista para pegarEsta guía te ayudará a integrar Sign-In de Apple con la Autenticación de Supabase en Android. Se supone que ya has completado:
Paso 1: Desplegar la función de servidor de borde
Sección titulada “Paso 1: Desplegar la función de servidor de borde”Primero, necesitamos desplegar la función de borde de Supabase que manejará el llamado de retorno de OAuth de Apple.
-
Navega a tu 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 está disponible en la aplicación de ejemplo.
Copiar los siguientes archivos en tu proyecto:
supabase/functions/apple-signin-callback/index.ts- Función principal de borde codesupabase/functions/apple-signin-callback/deno.json- Mapa de importación para dependencias (incluyejosebiblioteca para la firma JWT)
-
Configurar la verificación de JWT
El endpoint de llamada OAuth de Apple debe ser público (no se requiere autenticación) porque Apple lo redirigirá a él. Actualice su
supabase/config.tomlfile:[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" -
Despliegue la función
Ventana de terminal supabase functions deploy apple-signin-callback -
Obtenga la URL de su función
Después del despliegue, obtendrá una URL como:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSi no lo encuentra, puede hacer lo siguiente:
- Abrir
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Haga clic en el
apple-signin-callbackURL de función para copiarlo.
- Abrir
Paso 2: Configurar el Portal de desarrolladores de Apple
Sección titulada “Paso 2: Configurar 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
Completa 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 ID de clave
- Configura la URL de retorno
-
Establece la URL de retorno en el Portal de Desarrolladores de Apple
When configurando la URL de retorno en el Portal de Desarrolladores de Apple (paso 6.9 de la guía de Apple), utilice su 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 Android de Apple. Esa guía utiliza una URL de servidor de backend personalizado. Para la integración de Supabase, debe utilizar su URL de función de borde de Supabase en su lugar.
-
Reúne todos los valores requeridos
Después de completar la guía de configuración de Apple, deberías tener:
- ID DE EQUIPO DE DESARROLLADOR DE APPLE: Tu ID de equipo de desarrollador de Apple
- ID DE CLAVE DE APPLE: El ID de clave desde el portal de desarrollador de Apple
- LLAVE PRIVADA DE APPLE: Tu archivo de clave privada .p8 (necesita ser codificado en base64)
- ID DE SERVICIO DE ANDROID: Tu 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)
Step 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.
-
Codificar tu clave privada
Primero, codifica tu clave privada de Apple (.p8 archivo) a base64:
Ventana de terminal base64 -i AuthKey_XXXXX.p8Copiar el resultado completo (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: Establece secretos en el panel de Supabase
Si prefieres utilizar el panel de control:
- Dirígete a la consola de tu proyecto de Supabase
- Navega a Funciones de Edge → Configuración → Secretos
- Agrega cada variable de secreto con su valor
Paso 4: Utilice la Ayuda de Autenticación
Sección titulada “Paso 4: Utilice la Ayuda de Autenticación”Ahora puede utilizar la ayuda de autenticación en su aplicación code.
Implementación
Sección titulada “Implementación”La implementación completa está disponible en el archivo del supabaseAuthUtils.ts ejemplo.
Usando la Ayuda de Autenticación
Sección titulada “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 Ayuda
Sección titulada “Actualizar la Función de Ayuda”Al utilizar la authenticateWithAppleSupabase función de ayuda, usted debe actualizar los siguientes valores para que coincidan con su configuración:
-
Actualizar
redirectUrl- Establezca esto en la URL de su función de borde de Supabase:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Actualizar
clientId- Establezca esto en 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 por referencia.
Paso 5: Prueba la Integración
Título del paso 5: Prueba la Integración-
Construye y ejecuta tu aplicación Android
Ventana de terminal npx cap sync androidnpx cap run android -
Prueba 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 autenticar, deberías ser redirigido de regreso a tu aplicación
- Revisa los registros del consola para cualquier error
-
Verifique el flujo
El flujo completo debería ser:
- El usuario presiona ‘Iniciar sesión con Apple’
- La aplicación abre el navegador con OAuth de Apple
- El usuario se autentica con Apple
- Apple redirige 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 inicia sesión en Supabase con el token de identidad
Solución de problemas
Sección titulada ‘Solución de problemas’If authentication fails:
- URI de redirección no coincide: Verifique que la URL de retorno en el Portal de Desarrolladores de Apple coincida exactamente con
APPLE_REDIRECT_URIsecret - La enlace profundo no funciona: Verifique que
AndroidManifest.xmlel filtro de intención coincida con suBASE_REDIRECT_URL - Faltan secretos: Verifique que todos los secretos estén configurados correctamente utilizando
supabase secrets list - Falló el intercambio de token: Verifique los registros de función de borde en la Consola de Supabase para obtener mensajes de error detallados
- No se recibe la llamada de vueltaAsegú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: La pluggin 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
- Autenticación de Fondo: 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 final de token de Apple
- Redirección 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 registra en Supabase
Esta flujo es necesario porque Apple no proporciona soporte nativo de Android para Iniciar sesión con Apple.
Siga adelante desde Supabase Apple Login en Android
Sección titulada “Siga adelante desde Supabase Apple Login en Android”Si está utilizando Supabase Apple Login en Android para planificar la autenticación y los flujos de cuenta, conecte con Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social, @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social, @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey, @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Autenticación en dos factores para el detalle de implementación en Autenticación en dos factores.