Apple login en Android
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
El login de Apple en Android es poco ortodoxo. Apple no ofrece soporte oficial para Sign in with Apple en Android, así que la solución es un poco chapucera.
Android actualmente usa Chrome Tabs para mostrar un sitio web OAuth2. Este enfoque tiene estos retos:
- Configuración complicada
- Requiere un backend
Entender el flujo en Android.
Sección titulada “Entender el flujo en Android.”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 conoces los retos y el flujo, empecemos con la configuración.
Creación del Service ID
Sección titulada “Creación del Service ID”-
Inicia sesión en el Portal de Apple Developer.
-
Haz clic en
Identifiers.
Deberías ver una pantalla como esta:
- Asegúrate de que este campo diga
App IDs - Asegúrate de encontrar tu App ID.
- Asegúrate de que este campo diga
-
Asegúrate de que la
Sign in with Applecapability esté habilitada para tu app- Haz clic en tu app
- Asegúrate de que la
Sign in with Applecapability esté habilitada
- Si no está habilitada, actívala.
- Haz clic en tu app
-
Volver a la lista completa
All Identifiers
-
Haz clic en
App Idsy ve aServices IDs
-
Crear un nuevo identificador
-
Haz clic en el botón +
-
Selecciona
Servcice IDsy haz clic enContinue
-
Ingresa descripción e identificadores y haz clic
Continuie.
-
Verifica los detalles y haz clic en
Register
-
Haz clic en el service recién creado
-
Habilita el
Sign in with Appleopción
-
Configurar el
Sign In with Apple
-
Asegúrate de que el
Primary App IDesté configurado con el App ID del paso anterior
-
Agrega el dominio donde vas a alojar tu backend.
-
Confirma los datos y haz clic en
Done
-
Haz clic en
Continue
-
Haz clic en
Save
-
Creación de la clave
Sección titulada “Creación de la clave”-
Volver a la lista completa
All Identifiers
-
Haz clic en
Keys
-
Haz clic en el icono de más
-
Ponle un nombre a tu clave
-
Selecciona
Sign in with Appley haz clic enConfigure
-
Selecciona el App ID principal y presiona
Save
-
Haz clic en
Continue
-
Haz clic en
Register
-
Copia el Key ID y descarga la clave.
-
Busca la clave descargada y guárdala en la carpeta del backend.
Obtener el Team ID
Sección titulada “Obtener el Team ID”Para poder usar Login with Apple en Android, necesitas obtener el Team ID. Se usará en el backend.
-
Ve a este sitio web y desplázate hacia abajo
-
Busca el
Team ID
Configuración del redirect de la app
Sección titulada “Configuración del redirect de la app”Como viste en el diagrama, el backend realiza un paso llamado Redirect back to the app. Esto requiere cambios manuales en tu app.
- Modifica el
AndroidManifest.xml-
Abre el archivo, usaré
AndroidStudio
-
Busca el
MainActivityy añade el siguiente Intent filter
<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>
-
- Modifica el
MainActivity-
Por favor, abre la
MainActivity
-
Añade el siguiente code:
@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 configurarlo también afectará a iOS. Se incluye un ejemplo de backend aquí
Este ejemplo incluye lo siguiente:
- Una base de datos JSON sencilla
- Una forma de solicitar el JWT a los servidores de Apple
- Una verificación de JWT sencilla
Teniendo en cuenta lo anterior, así es como quedaría la env la sección se vería así:
ANDROID_SERVICE_ID= ID de servicioIOS_SERVICE_ID= App ID
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 igual que en iOS. Por favor, consulta esa sección para más información. SIN EMBARGO,, 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' }})Crear la app
Sección titulada “Creación de la app”-
Si aún no tienes un App ID, haz clic en el botón más
-
Selecciona
App IDsy haz clic en continuar
-
Haz clic en tipo
Appy haz clic enContinue
-
Introduce la descripción y el ID de la app
-
Activar
Sign with Applecapacidad
-
Haz clic
Continue
-
Confirma los detalles y haz clic
Register
Continuar tras el login de Apple en Android
Sección titulada “Continuar tras el login de Apple en Android”Si estás usando Apple login en Android para planificar los flujos de autenticación y de cuenta, conéctalo con Uso de @capgo/capacitor-social-login para la capacidad nativa en el uso de @capgo/capacitor-social-login, @capgo/capacitor-social-login para los detalles de implementación en @capgo/capacitor-social-login, @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey, @capgo/capacitor-native-biometric para el detalle de implementación en @capgo/capacitor-native-biometric, y Autenticación de dos factores para el detalle de implementación en la autenticación de dos factores.