Iniciar sesión con Apple en Android
Copie un prompt de configuración con los pasos de instalación y la guía markdown completa para este plugin.
La autenticación de Apple en Android es engorrosa. Apple no ofrece soporte oficial para Sign in with Apple Por lo tanto, la solución es ligeramente engorrosa.
Actualmente, Android utiliza una pestaña de Chrome para mostrar un sitio web OAuth2. Este enfoque tiene los siguientes desafíos:
- Difícil configuración
- Se requiere un backend
Entender el flujo en Android.
Sección titulada “Entender 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”-
Iniciar sesión en el Portal del Desarrollador de Apple.
-
Haga clic en
Identifiers.
Debería ver una pantalla que se parece a esta:
- Asegúrese de que este campo diga
App IDs - Asegúrese de que pueda encontrar su ID de aplicación.
- Asegúrese de que este campo diga
-
Asegúrese de que la
Sign in with Applecapacidad esté habilitada para su aplicación- Haga clic en su aplicación
- Asegúrese de que la
Sign in with Applecapacidad esté habilitada
- Si no está habilitada, habilítela.
- Haga clic en su aplicación
-
Vaya a la pestaña de
All Identifiers
-
Haga clic en
App Idsy vaya aServices IDs
-
Crear un nuevo identificador
-
Hacer clic en el botón de más
-
Seleccionar
Servcice IDsy hacer clicContinue
-
Ingresar una descripción y un identificador y hacer clic
Continuie.
-
Por favor, verifique los detalles y haga clic
Register
-
Haga clic en el servicio creado recientemente
-
Habilitar la
Sign in with Appleopción
-
Configurar el
Sign In with Apple
-
Asegúrese de que el
Primary App IDSe configura con el ID de la aplicación configurado en el paso anterior.
-
Agregar el dominio en el que planea alojar su backend.
-
Confirmar los datos y hacer clic
Done
-
Haga clic en
Continue
-
Haz clic en
Save
-
Crear la clave
Sección titulada “Crear la clave”-
Volver a todos
All Identifiers
-
Haz clic en
Keys
-
Haz clic en el icono de más
-
Nombra tu clave
-
Seleccionar
Sign in with Appley hacer clicConfigure
-
Seleccionar el ID de App principal, y presionar
Save
-
Haz clic en
Continue
-
Haz clic en
Register
-
Copia el ID de la clave y descarga la clave.
-
Encuentra la clave descargada y guárdala en la carpeta de backend.
Obteniendo el ID del equipo
Sección titulada “Obteniendo el ID del equipo”Para utilizar Login with Apple en Android, necesitas obtener el Team IDSe utilizará en el backend.
-
Ve a esta página web y desplázate hacia abajo
-
Encuentra la
Team ID
Configurando la redirección de la aplicación
Sección titulada “Configurando la redirección de la aplicación”Como viste en el diagrama, el backend realiza un paso llamado Redirect back to the app Este requiere cambios manuales en tu aplicación.
- Modifica el
AndroidManifest.xml-
Abre el archivo, utilizaré
AndroidStudio
-
Encuentra el
MainActivityy agrega 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>
-
- Modifica el
MainActivity-
Por favor, abre el
MainActivity
-
Agregar lo 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
Título de la sección “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 de los servidores de Apple
- Una verificación JWT simple
Dado todo lo que he dicho en este tutorial, aquí está cómo se vería env La sección quedaría así:
ANDROID_SERVICE_ID= ID de ServicioIOS_SERVICE_IDID de la App
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"}Utilizando el plugin
Título de sección “Utilizando el plugin”El uso de la login La función no cambia, es igual que en IOS. Por favor, consulte esa sección para obtener más información. HOWEVER, pero 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 aplicación
Sección titulada “Crear la aplicación”-
Si no tienes un ID de aplicación, haz clic en el botón de más
-
Seleccionar
App IDsy haz clic en continuar
-
Haz clic en el tipo
Appy haz clicContinue
-
Ingrese la descripción y el ID de la aplicación
-
Habilitar
Sign with Applefuncionalidad
-
Hacer clic
Continue
-
Confirmar los detalles y hacer clic
Register
Continuar desde inicio de sesión de Apple en Android
Sección titulada “Continuar desde inicio de sesión de Apple en Android”Si está utilizando Iniciar sesión con Apple en Android para planificar la autenticación y los flujos de cuenta, conecte 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-de-pasaje para el detalle de implementación en @capgo/capacitor-clave-de-pasaje @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Autenticación en dos factores para el detalle de implementación en Autenticación en dos factores.