Saltar al contenido principal
Puedes añadir la funcionalidad a tu aplicación nativa de iOS para permitir que tus usuarios se autentiquen con Sign In with Apple. Para obtener más detalles sobre la implementación, prueba la guía de inicio rápido de iOS Swift - Sign In with Apple de Auth0.

Cómo funciona

En una aplicación nativa, el flujo de inicio de sesión con Sign in with Apple funciona de la siguiente manera:
Diagrama del flujo de autenticación de Sign In with Apple
  • Pasos 1 y 2: El usuario se autentica mediante el SDK de Apple en su dispositivo iOS y recibe un código de autorización en la respuesta. El usuario no tiene que salir de la aplicación ni usar un navegador para iniciar sesión.
    Evite usar un nonce. Esto hará que la solicitud a Apple falle en el paso 4 y Auth0 devolverá al usuario un error 400: “Error from Apple connection.”
  • Paso 3: La aplicación llama al endpoint /oauth/token de Auth0 para intercambiar el código de autorización de Apple por tokens de Auth0.
  • Pasos 4 y 5: La plataforma de Auth0 intercambia el código de autorización con Apple por tokens. Auth0 valida los tokens y usa los claims de estos tokens para construir la identidad del usuario.
  • Paso 6: Auth0 guarda el perfil del usuario, ejecuta Rules y la autorización, y luego emite de Auth0 ( e ) según corresponda. Estos tokens se usan para proteger sus API y a los usuarios administrados por Auth0.

Requisitos previos

Antes de configurar Sign In with Apple para tu aplicación nativa en Auth0, debes:
  • Tener una cuenta de Apple Developer, que es una cuenta de pago de Apple. (No hay ninguna prueba gratuita disponible, a menos que formes parte de su iOS Developer University Program.)
  • Registrar tu aplicación en el portal para desarrolladores de Apple si aún no lo has hecho. Anota los siguientes ID y la clave para la configuración de la conexión de la aplicación en el :
    • App ID
    • Apple Team ID
    • Client Secret Signing Key
    • Key ID
  • Si usas el flujo de Classic Login o incorporas Lock.js en tu aplicación, asegúrate de usar Lock.js versión 11.16 o posterior.

Configure y habilite la conexión en Auth0

Una vez que tenga las credenciales necesarias de su cuenta de Apple Developer, debe configurar el cliente de la aplicación y la configuración de la conexión en Auth0.
  1. Vaya a Auth0 Dashboard > Applications > Applications, elija su aplicación y seleccione el ícono de engranaje para ver la página de configuración.
  2. En la parte inferior de la página, seleccione Show Advanced Settings y luego la vista Device Settings. En Native Social Login, active el interruptor Enable Sign In with Apple.
    Configuración del cliente de la aplicación: configuración avanzada del dispositivo
  3. En iOS, complete el campo App ID con el App ID/Bundle Identifier de la aplicación nativa.
  4. Vaya a Auth0 Dashboard > Authentication > Social y seleccione Create Connection.
  5. Seleccione la conexión Apple y acepte el consentimiento.
  6. En la pestaña Settings, complete los siguientes campos:
    • Apple Team ID
    • Client Secret Signing Key
    • Key ID
      Configuración de la conexión social de Apple
  7. Seleccione la vista Applications para habilitar esta conexión para su aplicación.
  8. Haga clic en Save.
Las aplicaciones nativas no se pueden probar desde el navegador. Esto significa que el botón Try Connection de la conexión de Apple se usa exclusivamente para probar flujos basados en web.

Cerrar sesión

Dado que la implementación de inicio de sesión nativa de iOS no utiliza flujos estándar basados en navegador, los responsables de la aplicación también deben asegurarse de cerrar sesión correctamente. Cuando una aplicación necesite cerrar sesión, debe realizar las siguientes acciones:
  • Revocar el Token de actualización de Auth0
  • Eliminar el token de actualización de Auth0 almacenado en el llavero de iCloud
  • Eliminar el identificador de usuario de Apple almacenado en el llavero de iCloud Además, tenga en cuenta que el cierre de sesión puede producirse por acciones del usuario (por ejemplo, al hacer clic en un botón de “cerrar sesión”) o porque un usuario revoque el acceso a la aplicación. Esto último se indicará mediante el método nativo ASAuthorizationAppleIDProvider.getCredentialState.
Un matiz del IdP de Apple es que solo devuelve los alcances solicitados (como correo electrónico, nombre y apellido) en el token de ID en la primera respuesta. Los enfoques de cierre de sesión más destructivos (como eliminar al usuario) podrían provocar la pérdida de información del perfil, lo que obligaría a los usuarios finales a revocar la autorización y volver a autorizar una aplicación.

Más información