Iniciar sesión en Apple en Android
Copiar un prompt de configuración con los pasos de instalación y la guía 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.
Android utiliza actualmente una pestaña de Chrome para mostrar un sitio web OAuth2. Este enfoque tiene los desafíos:
- Configuración difícil
- Se requiere un backend
Entendiendo el flujo en Android.
Sección titulada “Entendiendo el flujo en Android.”Me gustaría 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.
Crear el ID de servicio
Sección titulada “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:
- __CAPGO_KEEP_0__
App IDs - Asegúrate de que este campo diga
- __CAPGO_KEEP_0__
-
Asegúrate de que la
Sign in with Applecapacidad esté habilitada para tu aplicación- Haz clic en tu aplicación
- Asegúrese de que la
Sign in with Applecapacidad esté habilitada
- Si no está habilitada, habilítela.
- 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
-
Introducir una descripción y identificadores y hacer clic
Continuie.
-
Por favor, verifica los detalles y haz clic en
Register
-
Haz clic en el servicio creado recientemente
-
Habilitar
Sign in with Appleopción
-
Configurar el
Sign In with Apple
-
Asegúrate de que el
Primary App IDesté configurado en el ID de App configurado en el paso anterior
-
Agregar el dominio en el que vas a alojar tu backend.
-
Configuración de dominio y URL de retorno confirmada
Done
-
Botón de continuación para la configuración del servicio
Continue
-
Botón de guardar para la configuración del servicio
Save
-
__CAPGO_KEEP_0__
Sección titulada “Crear la clave”-
Volver a todos
All Identifiers
-
Haga clic en
Keys
-
Haga clic en el icono de más
-
Asigne un nombre a su clave
-
Seleccionar
Sign in with Appley hacer clicConfigure
-
Seleccionar el ID de aplicación principal, y presionar
Save
-
Hacer clic en
Continue
-
Hacer 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 de backend.
Obtener el ID de equipo
Sección titulada “Obtener el ID de equipo”Para utilizarlo Login with Apple en Android, necesitas 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 redirección de la aplicación
Sección titulada “Configuración de la redirección de la aplicación”Como viste en el diagrama, el backend realiza un paso llamado Redirect back to the appEsto requiere cambios manuales en tu aplicación.
- Modificar el
AndroidManifest.xml-
Abra 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
MainActivity
-
Agregue 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
Configuración de backendSe 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 se vería la env sección:
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 cambian un poco.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Crear la aplicación
Nota-
Si no tienes ya un ID de aplicación, haz clic en el botón de más
-
Seleccionar
App IDsy haz clic en continuar
-
Haz clic en tipo
Appy haz clicContinue
-
Ingresa la descripción y el ID de la aplicación
-
capacidad
Sign with Applehabilitar
-
Haga clic
Continue
-
Confirme los detalles y haga clic
Register
Siga adelante desde el inicio de sesión de Apple en Android
Sección titulada “Siga adelante desde el inicio de sesión de Apple en Android”Si está utilizando Inicio de sesión de Apple en Android para planificar la autenticación y los flujos de cuenta, conéctelo con Usando @capgo/capacitor-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login @capgo/capacitor-login-social para los detalles de implementación en @capgo/capacitor-login-social @capgo/capacitor-clave-llave para los detalles de implementación en @capgo/capacitor-clave-llave @capgo/capacitor-biometría-nativa para los detalles de implementación en @capgo/capacitor-biometría-nativa, y autenticación de dos factores para los detalles de implementación en autenticación de dos factores.