Inicio de sesión con Apple en Android
El inicio de sesión con Apple en Android es algo improvisado. Apple no ofrece
soporte oficial para Sign in with Apple en Android, así que la solución
requiere algunos rodeos.
Actualmente Android usa una pestaña de Chrome para mostrar un sitio OAuth2. Este enfoque implica dos retos principales:
- Configuración compleja
- Se necesita un backend
Comprender el flujo en Android
Section titled “Comprender el flujo en Android”Este diagrama resume el flujo en Android:
flowchart TD
A("await SocialLogin.login()") -->|Handled in the plugin|B(Generate the login URL)
B --> |Pass the link| C(Open the Chrome browser)
C --> D(Wait for the user to login)
D --> |Apple redirects to your backend|E(Handle the data returned from Apple)
E --> F(Redirect back to the app)
F --> G(Return to JS) Ahora que ya conoces las limitaciones y el flujo general, pasemos a la configuración.
Creando el Service ID
Section titled “Creando el Service ID”-
Inicia sesión en el Apple Developer Portal
-
Haz clic en
Identifiers
Deberías ver una pantalla similar a esta:

- Asegúrate de que este campo dice
App IDs - Verifica que puedes encontrar el App ID de tu aplicación
- Asegúrate de que este campo dice
-
Asegúrate de que la capacidad
Sign in with Appleestá habilitada para tu aplicación-
Haz clic en tu app

-
Verifica que la capacidad
Sign in with Appleesté activada
-
Si no está activada, actívala
-
-
Vuelve a
All Identifiers
-
Haz clic en
App IDsy cambia aServices IDs
-
Crea un identificador nuevo
-
Haz clic en el botón con el signo
+
-
Selecciona
Service IDsy haz clic enContinue
-
Introduce una descripción y un identificador, luego haz clic en
Continue
-
Verifica los datos y haz clic en
Register
-
Haz clic en el servicio recién creado

-
Activa la opción
Sign in with Apple
-
Configura
Sign in with Apple
-
Asegúrate de que
Primary App IDapunte al App ID configurado antes
-
Añade el dominio donde vas a alojar el backend

-
Confirma los datos y haz clic en
Done
-
Haz clic en
Continue
-
Haz clic en
Save
-
Creando la clave
Section titled “Creando la clave”-
Regrese a todos los “Todos los identificadores”.

-
Haga clic en
Keys
-
Haga clic en el ícono más

-
Nombra tu clave

Este nombre no es importante, puedes poner cualquier cosa.
-
Seleccione
Sign in with Appley haga clic enConfigure
-
Seleccione la ID de la aplicación principal y presione
Save
Debe ser el mismo ID de aplicación que el ID de los pasos anteriores.
-
Haga clic en
Continue
-
Haga clic en
Register
-
Copie el ID de la clave y descargue la clave.

:::precaución IMPORTANTE: Guarde este ID, en el backend se llamará
KEY_ID. Descarga la clave. Asegúrese de no compartir nunca esta clave. ::: -
Busque la clave descargada y guárdela en la carpeta backend.

Obteniendo la identificación del equipo
Section titled “Obteniendo la identificación del equipo”Para utilizar Login with Apple en Android, necesita obtener el “ID del equipo”. Se utilizará en el backend.
-
Vaya a este sitio web y desplácese hacia abajo.
-
Busque el “ID del equipo”

Configurar la redirección de la aplicación
Section titled “Configurar la redirección de la aplicación”Como vio en el diagrama, el backend realiza un paso llamado “Redirigir a la aplicación”. Esto requiere cambios manuales en su aplicación.
- Modificar el
AndroidManifest.xml-
Abra el archivo, usaré
AndroidStudio
-
Busque
MainActivityy agregue el siguiente filtro de intención
<intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="capgo-demo-app" android:host="path" /></intent-filter>
-
- Modificar el
MainActivity-
Abra el
MainActivity
-
Agregue el siguiente código:
@Overrideprotected void onNewIntent(Intent intent) {String action = intent.getAction();Uri data = intent.getData();if (Intent.ACTION_VIEW.equals(action) && data != null) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Apple Login Intent", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Apple Login Intent", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleAppleLoginIntent(intent);return;}super.onNewIntent(intent);}:::precaución Este ejemplo supone que no tienes ningún vínculo profundo configurado. Si es así, ajuste el código. :::
-
Configuración de fondo
Section titled “Configuración de fondo”Se requiere un backend para Android, pero la configuración de un backend también afectará a IOS. Se proporciona un ejemplo de backend aquíEste ejemplo proporciona lo siguiente:
- Una base de datos simple JSON
- Una forma de solicitar el JWT de los servidores de Apple
- Una verificación simple JWT
Teniendo en cuenta todo lo que dije en este tutorial, así es como se vería la sección env:
ANDROID_SERVICE_ID= ID de servicioIOS_SERVICE_ID= ID de aplicación
env: { PRIVATE_KEY_FILE: "AuthKey_U93M8LBQK3.p8", KEY_ID: "U93M8LBQK3", TEAM_ID: "UVTJ336J2D", ANDROID_SERVICE_ID: "ee.forgr.io.ionic.starter.service2", IOS_SERVICE_ID: "me.wcaleniewolny.test.ionic.vue", PORT: 3000, REDIRECT_URI: "https://xyz.wcaleniewolny.me/login/callback", BASE_REDIRECT_URL: "capgo-demo-app://path"}Usando el complemento
Section titled “Usando el complemento”El uso de la función login no cambia, es el mismo que en IOS. Por favor, echa un vistazo a esa sección para obtener más información. SIN EMBARGO, el método initialize cambia un poco.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Creando la aplicación
Section titled “Creando la aplicación”-
Si aún no tiene una ID de aplicación, haga clic en el botón más

-
Seleccione “ID de aplicación” y haga clic en continuar.

-
Haga clic en escribir
Appy haga clic enContinue
-
Ingrese la descripción y el ID de la aplicación.

-
Habilite la capacidad
Sign with Apple
-
Haga clic en
Continue
-
Confirme los detalles y haga clic en
Register