Flujo de Autenticación en APIs con Tokens y Proveedores

Clase 20 de 33Curso de Creación de APIs con Ruby on Rails

Contenido del curso

Proyecto

Resumen

Comprende de forma clara cómo se autentican las peticiones en un API moderno: desde el browser y la single page application en JavaScript hasta el backend, el uso de tokens y la opción de un proveedor como Out 0. Aquí se explica el flujo básico: qué envía el cliente, qué valida el servidor y cómo se autoriza el acceso.

¿Cómo funciona la autenticación en un API con tokens?

La base es un intercambio seguro entre cliente y servidor. El usuario envía sus credenciales y, si son válidas, recibe un token de autenticación que identifica su sesión y permite acceder a recursos protegidos.

  • El browser inicia la solicitud de login.
  • La single page application envía credenciales: username y password.
  • El backend valida credenciales en la base de datos.
  • Si son válidas, genera un token: un string que identifica la sesión.
  • El cliente guarda el token y lo envía en solicitudes posteriores.
  • El backend usa el token para autorizar acciones como editar un blog post.
  • Diferencia clave: autenticación identifica al usuario; autorización permite o deniega acceso a recursos.

¿Qué rol cumplen el browser, la single page application y el backend?

Cada parte tiene responsabilidades claras para mantener la seguridad y la experiencia de uso.

  • Browser: punto de interacción del usuario.
  • Single page application en JavaScript: gestiona la vista y realiza peticiones al API.
  • Backend: procesa el login, consulta la base de datos, emite tokens y valida su envío en cada petición.
  • Cuando el token acompaña la solicitud, el backend verifica autenticación y realiza autorización según el recurso.
  • Alternativa de diseño: implementar autenticación y autorización en la propia aplicación o delegarlas en un proveedor.

¿Cuándo usar un proveedor de autenticación como Out 0?

Delegar el login en un proveedor confiable mejora la percepción de seguridad y simplifica la gestión de credenciales.

  • El login no va al backend propio: va al proveedor de autenticación.
  • El proveedor devuelve un token al cliente.
  • El browser guarda ese token y lo reutiliza en peticiones siguientes.
  • Ventaja percibida: más confianza del usuario, ya que las credenciales no se guardan en la aplicación propia.
  • Tipos de tokens: algunos son autocontenidos y no requieren llamadas adicionales; otros requieren consultar al proveedor para verificar validez.
  • En el proyecto: primero se implementa autenticación en el servidor propio y luego con Out 0.

¿Te gustaría que profundicemos en el envío del token en cabeceras o en cómo almacenar el token de forma segura en el browser? Deja tus preguntas y comentarios.