Amazon Cognito en iOS: Más allá de Amplify

Todo lo que publiqué en 2025: AWS Cognito en iOS sin Amplify

Un recorrido por todos los artículos publicados en 2025 sobre cómo implementar autenticación con AWS Cognito en iOS sin usar Amplify. Desde el registro hasta el cierre de sesión global.


El 2025 fue un año de aprendizaje profundo sobre autenticación en iOS. Escribí una serie completa sobre cómo implementar AWS Cognito en una app nativa de iOS sin usar Amplify conectándose directamente a la API de Cognito con el SDK oficial de AWS para Swift.


Si estás construyendo una app iOS con autenticación y quieres entender qué hay detrás de la pantalla de login, esta serie es para ti. Cada artículo cubre un flujo específico, con código Swift real y explicaciones paso a paso.

  1. Artículo introductorio


    Antes de arrancar con el código, publiqué un artículo que explica la diferencia entre los dos servicios de AWS más confundidos en el mundo del desarrollo móvil:


    AWS Cognito vs AWS Amplify: Entendiendo las diferencias y cuándo usar cada uno. Cuándo usar Cognito directamente y cuándo tiene sentido Amplify? Este artículo responde esa pregunta antes de que empieces a escribir código.

    2. La serie: AWS Cognito en iOS (sin Amplify)


    La serie cubre el ciclo completo de autenticación de un usuario, desde que se registra por primera vez hasta que cierra sesión en todos sus dispositivos. Aquí están todos los artículos en orden:

    Registro de Usuarios con AWS Cognito en iOS (sin Amplify)

      El punto de partida. Cómo crear la pantalla de registro, llamar al SDK de Cognito y manejar los errores más comunes. El usuario queda en estado unconfirmed y recibe un código por email.

    3. Confirmación de cuenta con código de verificación en AWS Cognito (iOS)

    Confirmación de cuenta con código de verificación en AWS Cognito (iOS)

      El flujo siguiente al registro. El usuario ingresa el código de 6 dígitos que recibió por email para activar su cuenta. Implementamos también el reenvío de código.

    4. Inicio de sesión (Sign In) con AWS Cognito en iOS

    Inicio de sesión (Sign In) con AWS Cognito en iOS

      La pantalla principal de la app. Usamos el flujo USER_PASSWORD_AUTH para autenticar al usuario y recibir los tres tokens: Access Token, ID Token y Refresh Token. Explicamos para qué sirve cada uno.

    5. Almacenamiento seguro de tokens y cierre de sesión en iOS

    Almacenamiento seguro de tokens y cierre de sesión en iOS

      Los tokens no deben guardarse en UserDefaults. Aquí implementamos almacenamiento seguro con Keychain y creamos la pantalla de bienvenida con botón de Sign Out.

    6. Persistencia de sesión con AWS Cognito en iOS

    Persistencia de sesión con AWS Cognito en iOS

      El usuario no debería tener que iniciar sesión cada vez que abre la app. Implementamos la verificación de tokens en Keychain al arrancar y la navegación automática a la pantalla correcta.

    7. Refresh automático de tokens con AWS Cognito en iOS


     Los Access Token expiran en 60 minutos. Aquí implementamos el refresh automático usando el Refresh Token para que el usuario nunca experimente una expiración inesperada de sesión.

    8. Recuperación de contraseña (Forgot Password) con AWS Cognito en iOS

    Recuperación de contraseña (Forgot Password) con AWS Cognito en iOS

      El usuario olvidó su contraseña. Implementamos el flujo en 2 pasos: solicitar código por email y luego ingresar el código junto con la nueva contraseña.

    9. Cambio de contraseña con AWS Cognito en iOS

    Cambio de contraseña con AWS Cognito en iOS

      Distinto al Forgot Password: aquí el usuario sí está logueado y sí recuerda su contraseña. Implementamos indicador visual de fortaleza y el usuario se mantiene logueado después del cambio.

    10. Global Sign Out con AWS Cognito en iOS


      El cierre de sesión estándar solo elimina los tokens locales. El Global Sign Out llama a la API de Cognito para invalidar los tokens en todos los dispositivos del usuario simultáneamente.


    ¿Por qué sin Amplify?


    Amplify es una solución que abstrae mucho de lo que Cognito hace internamente. Es útil para prototipos rápidos, pero cuando necesitas control total sobre los flujos de autenticación, personalizar tokens, manejar errores específicos, integrar con tu propio backend trabajar directamente con el SDK de Cognito es la mejor opción.


    Esta serie muestra exactamente eso: cómo hablar directamente con AWS Cognito desde Swift, sin magia, entendiendo cada paso.


    ¿Qué sigue en 2026?

    La serie continúa. Hay más flujos por cubrir: obtener atributos del usuario, MFA, autenticación biométrica y más. Si quieres estar al tanto de los nuevos artículos, sígueme en LinkedIn https://www.linkedin.com/in/josedlujan/ o en Medium https://medium.com/@josedlujan

    También puedes explorar el código de los ejemplos en GitHub https://github.com/josedlujan

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *