Inicio de sesión de Apple en Android
Copie 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 un poco engañoso. Apple no ofrece soporte oficial para Sign in with Apple La solución es un poco engañosa debido a que Apple no ofrece soporte oficial para
Actualmente, Android utiliza una pestaña de Chrome para mostrar un sitio web OAuth2. Esta aproximación tiene los siguientes desafíos:
- Configuración difícil
- Se requiere un backend
Entender el flujo en Android.
Entender el flujo en AndroidExplícamelo mediante un diagrama para entender 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.
Crear el ID de servicio
Crear el ID de servicio-
Inicia sesión en el Portal de desarrolladores de Apple.
-
Haga 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á habilitado, habilítelo.
- Haz clic en tu aplicación
-
Volver a todos
All Identifiers
-
Haga clic en
App Idsy vaya aServices IDs
-
Crear un nuevo identificador
-
Haga clic en el botón de más (+)
-
Seleccionar
Servcice IDsy hacer clicContinue
-
Introduzca una descripción y un identificador y haga clic
Continuie.
-
Por favor, verifica los detalles y haz clic en
Register
-
Haz clic en el servicio creado recientemente
-
Habilitar la
Sign in with Appleopción
-
Configura el
Sign In with Apple
-
Asegúrate de que el
Primary App IDesté configurado en el ID de la aplicación configurado en el paso anterior
-
Agrega el dominio en el que vas a alojar tu backend.
-
Confirmar los datos y haz clic en
Done
-
Haz clic en
Continue
-
Haz clic en
Save
-
Creando la clave
Sección titulada “Creando la clave”-
Vuelve a la lista de todos
All Identifiers
-
Haz clic en
Keys
-
Haz clic en el icono de más
-
Nombra tu clave
-
Selecciona
Sign in with Appley haz clicConfigure
-
Seleccionar la App ID principal, y presionar
Save
-
Haga clic en
Continue
-
Haga clic en
Register
-
Copie el ID de la clave y descargue la clave.
-
Encuentra el archivo de la clave descargada y guárdalo en la carpeta del backend.
Obteniendo el ID de equipo
Sección titulada “Obteniendo el ID de equipo”Para utilizar Login with Apple en Android, debes obtener el Team IDSe utilizará en el backend.
-
Ir a esta página web y desplázate hacia abajo
-
Encuentra la
Team ID
Configuración de la aplicación de redireccionamiento
Sección titulada “Configuración de la aplicación de redireccionamiento”Al observar en el diagrama, el backend realiza un paso llamado Redirect back to the appEste requiere cambios manuales en tu aplicación.
- Modificar el
AndroidManifest.xml-
Abre el archivo, utilizaré
AndroidStudio
-
Encuentre el
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-
Por favor, abra 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 de backend
Sección titulada “Configuración de 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 de los servidores de Apple
- Una verificación JWT simple
Dado todo lo que dije en este tutorial, aquí está cómo hacerlo env La sección se vería así:
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 plugin
Sección titulada “Usando el plugin”El uso de la login función no cambia, es lo mismo que en IOS. Por favor, consulte esa sección para obtener más información. Sin embargo, el initialize método cambia un poco.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Crear la aplicación
Sección titulada “Crear la aplicación”-
Si no tienes un ID de App, haz clic en el botón de más
-
Seleccionar
App IDsy hacer clic en continuar
-
Hacer clic en tipo
Appy hacer clicContinue
-
Introducir la descripción y el ID de la aplicación
-
Habilitar
Sign with Applecapacidad
-
Hacer clic
Continue
-
Confirmar los detalles y hacer clic
Register
Siga adelante desde la autenticación de Apple en Android
Sección titulada “Siga adelante desde la autenticación de Apple en Android”Si estás utilizando Autenticación de Apple 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 for the implementation detail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and Autenticación de dos factores Para obtener más detalles sobre la implementación en Autenticación de dos factores.