Autenticación de Apple en Android
Copiar un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
El inicio de sesión de Apple en Android es engañoso. Apple no ofrece soporte oficial para Sign in with Apple en Android, por lo que la solución es ligeramente engañosa.
Actualmente, Android utiliza una pestaña de Chrome para mostrar un sitio web OAuth2. Este enfoque tiene los siguientes desafíos:
- Configuración difícil
- Se requiere un backend
Entender el flujo en Android
Sección titulada “Entender el flujo en Android.”Déjame usar un diagrama para explicar 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 estás al tanto de los desafíos y el flujo, comencemos la configuración.
Creando el ID de servicio
Crear el ID de servicio-
Iniciar sesión en el Portal de desarrolladores de Apple.
-
Hacer clic en
Identifiers.
Deberías ver una pantalla que se parece a esta:
- Asegúrate de que este campo diga
App IDs - Asegúrate de que puedas encontrar tu ID de App.
- Asegúrate de que este campo diga
-
Asegúrate de que la
Sign in with Applecapacidad esté habilitada para tu aplicación- Haz clic en tu aplicación
- Asegúrate de que la
Sign in with Applecapacidad esté habilitada
- Si no está habilitada, habilita
- Haz clic en tu aplicación
-
Vuelve a la lista de todas
All Identifiers
-
Haz clic en
App Idsy ve aServices IDs
-
Crear un nuevo identificador
-
Haz clic en el botón de más
-
Seleccionar
Servcice IDsy hacer clicContinue
-
Introducir una descripción y un identificador y hacer clic
Continuie.
-
Por favor, verifique los detalles y haga clic
Register
-
Haga clic en el servicio de ID recién creado
-
Habilitar la
Sign in with Appleopción
-
Configurar el
Sign In with Apple
-
Asegúrese de que
Primary App IDse establece en la ID de la aplicación configurada en el paso anterior
-
Agregar el dominio en el que vas a hospedar tu backend.
-
Confirmar los datos y hacer clic
Done
-
Hacer clic en
Continue
-
Hacer clic en
Save
-
Creando la clave
Sección titulada “Creando la clave”-
Volver a todos
All Identifiers
-
Hacer clic en
Keys
-
Haz clic en el icono de más
-
Nombra tu clave
-
Seleccionar
Sign in with Appley hacer clicConfigure
-
Selecciona el ID de App principal, y presiona
Save
-
Haga clic en
Continue
-
Haga clic en
Register
-
Copie el ID de la clave y descargue la clave.
-
Encuentre el archivo de la clave descargada y guarde en el carpeta del backend.
Obtener el ID del equipo
Sección titulada “Obtener el ID del equipo”Para utilizar Login with Apple en Android, necesita obtener el Team ID. Se utilizará en el backend.
-
Vaya a esta página web y desplácese hacia abajo
-
Encuentra la ubicación del ID de equipo en la cuenta de desarrollador
Team ID
Sección titulada “Configuración de la redirección de la aplicación”
Como viste en el diagrama, el backend realiza un paso llamadoEste requiere cambios manuales en tu aplicación. Redirect back to the appModificar el
- Abre el archivo, utilizaré
AndroidManifest.xml-
Archivo AndroidManifest.xml en Android Studio
AndroidStudio
-
y agrega el siguiente filtro de intención
MainActivityFiltro de intención __CAPGO_KEEP_0__ para agregar en MainActivity
<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-
Por favor, abre el archivo MainActivity.java en Android Studio
MainActivity
-
code para agregar a MainActivity para manejar enlaces profundos
@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);}
-
Configuración del backend
Sección titulada “Configuración del backend”Se requiere un backend para Android, pero configurar un backend también afectará a IOS. Se proporciona un ejemplo de backend aquí
Este ejemplo proporciona lo siguiente:
- Una base de datos JSON simple
- Una forma de solicitar el JWT desde los servidores de Apple
- Una verificación JWT simple
Dado todo lo que dije en este tutorial, aquí está cómo se vería env esta sección:
ANDROID_SERVICE_ID= Identificador de ServicioIOS_SERVICE_ID= Identificador 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 plugin
Sección titulada “Usando el plugin”El uso de la login La función no cambia, es lo mismo que IOS. Por favor, consulte esa sección para obtener más información. Sin embargo, el initialize El método cambia un poco.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Sección titulada “Crear la aplicación”
Nota-
Agregar nuevo identificador de más
-
y hacer clic en continuar
App IDsSeleccionando el tipo de ID de App
-
Haz clic en tipo
Appy haz clicContinue
-
Introduzca la descripción y el ID de la aplicación
-
Habilitar
Sign with Applehabilidad
-
Haz clic
Continue
-
Confirmar los detalles y haz clic
Register
Sigue adelante desde Apple login en Android
Sección titulada “Sigue adelante desde Apple login en Android”Si estás utilizando Apple login en Android para planificar la autenticación y los flujos de cuenta, conecta 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-clave-privada para el detalle de implementación en @capgo/capacitor-clave-privada, @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.