
Creo que mucha gente ya escuchó Iniciar sesión con Apple (SIWA para abreviar) después de la WWDC 2019. En este artículo, le diré qué dificultades específicas tuve que enfrentar al integrar esto en nuestro portal de licencias. Este artículo no es realmente para aquellos que acaban de decidir entender SIWA (para ellos he proporcionado una serie de enlaces educativos al final del texto). En este material, lo más probable es que muchos encuentren respuestas a las dudas que puedan surgir a la hora de integrar el nuevo servicio de Apple.
Apple no permite redirecciones personalizadas
En realidad, todavía no he visto una respuesta a esta pregunta en los foros de desarrolladores. La esencia es esta: si quieres usar la API SIWA JS, es decir, no trabajar a través del SDK nativo debido a su ausencia por una razón u otra (no macOSSi utilizas iOS o versiones anteriores de estos sistemas, necesitas tu propio portal público; no hay otra opción. Porque en el portal WWDR, debes registrar y verificar la propiedad de tu dominio, y solo ese dominio puede utilizarse para redirecciones aprobadas por Apple.

¿Qué debes hacer si quieres interceptar una redirección en una aplicación? Resolvimos este problema de manera extremadamente simple: creamos en nuestro portal una lista de redireccionamientos aceptables para nuestras aplicaciones, que solicitan antes de mostrar la página de autorización SIWA. Y simplemente redireccionamos desde el portal a la aplicación con los datos recibidos de Apple. Sencillo y enojado.
Problemas con el correo electrónico
Veamos cómo resolvimos problemas con el correo electrónico del usuario. En primer lugar, no existe una API REST que le permita obtener esta información desde el backend; solo el cliente recibe estos datos y puede transmitirlos junto con el código de autorización.
En segundo lugar, la información sobre el nombre y el correo electrónico del usuario se transmite sólo una vez, cuando el usuario inicia sesión por primera vez en la aplicación a través de Apple, donde el usuario selecciona opciones para compartir sus datos personales.
En sí mismos, estos problemas no son directamente críticos si la conexión con el perfil social se creó exitosamente en el portal (el ID de usuario es el mismo y está vinculado al ID del equipo), es decir. es lo mismo para todas las aplicaciones integradas en SIWA de su equipo. Pero si el inicio de sesión se realizó a través de Apple y más adelante ocurrió un error y no se creó la conexión en el portal, entonces la única opción es enviar al usuario a appleid.apple.com, romper la conexión con la aplicación y intentar otra vez. En realidad, el problema se puede resolver escribiendo el artículo de KB apropiado y vinculándolo.
El siguiente problema más desagradable está relacionado con el hecho de que a Apple se le ocurrió un nuevo concepto con el correo electrónico proxy. En nuestro caso, si el usuario ya ha visitado el portal de licencias con su jabón real y, al iniciar sesión por primera vez a través de Apple, selecciona la opción de ocultar el correo electrónico, se registra una nueva cuenta con este correo electrónico proxy. mail, que obviamente no contiene ninguna licencia, lo que pone al usuario final en un callejón sin salida.
La solución a este problema es bastante sencilla: porque. Si la ID de usuario es la misma en SIWA y no depende de las opciones/aplicación seleccionadas en las que se realiza el inicio de sesión, entonces simplemente usamos un script especial para permitirle cambiar esta conexión de Apple a otra cuenta con la cuenta real del usuario. jabón y así “recuperar tus compras” " Luego de este procedimiento, el usuario comienza a acceder a otra cuenta del portal a través de SIWA y todo le funciona correctamente.
No hay ningún ícono de aplicación al iniciar sesión a través del portal web
Para resolver otro problema, recurrimos a los representantes de Apple para obtener una aclaración y compartir nuestro conocimiento:

Es decir, el significado es el siguiente: solo uno puede estar al frente del grupo SIWA. macOSUna aplicación iOS que ya cuenta con los identificadores de servicio del portal necesarios. Por lo tanto, para que se muestre el icono principal de la aplicación, debe tener versiones publicadas en la App Store con contenido multimedia verificado por Apple. El icono se tomará de allí.
En consecuencia, si solo tiene un portal y no tiene aplicaciones de la App Store, entonces no tendrá un ícono hermoso, pero puede salirse con el nombre de la aplicación; si la aplicación principal no tiene medios, esta información es tomado del ID del servicio de descripción:


El número de elementos en un grupo SIWA está limitado a 5
No hay solución a este problema en este momento excepto usar muchos grupos, si le faltan 6 identificadores: 1 de aplicación principal y 5 dependientes, cuando intente registrar el siguiente verá este mensaje:

Hemos creado grupos para nuestro portal de licencias y para cada una de las aplicaciones que interactúan con este portal. Respecto a las restricciones de slots, ya hemos abierto un radar con Apple y estamos esperando su respuesta.
Enlaces de interés
Más útil , en mi opinión, según el cual hice todo esencialmente. Muelle semiútil de Apple .
¡Disfrutar! Preguntas, pensamientos, ideas y sugerencias son bienvenidas en los comentarios.
Fuente: habr.com
