Saltar al contenido

file_download
Proyecto API final
N/A
play_circle_outline
vista previa
3 minutos
play_circle_outline
vista previa
3 minutos
play_circle_outline
vista previa
5 minutos
play_circle_outline
vista previa
4 minutos
play_circle_outline
vista previa
6 minutos
play_circle_outline
vista previa
3 minutos
play_circle_outline
vista previa
3 minutos
play_circle_outline
vista previa
3 minutos
play_circle_outline
Logout con JWT
2 minutos
play_circle_outline
Registrar rutas de autenticación con sus respectivos middlewares
3 minutos
play_circle_outline
Controlador invocable para obtener colores
2 minutos
play_circle_outline
Controlador invocable para obtener un color
2 minutos
play_circle_outline
Controlador invocable para crear colores
3 minutos
play_circle_outline
Registrar rutas de colores
2 minutos
play_circle_outline
Ruta Health Check
2 minutos

file_download
Proyecto Cliente final
N/A
play_circle_outline
Crear proyecto y reflexiones para mejorar el cliente
4 minutos
play_circle_outline
Migración y modelo para almacenar la configuración de las APIs
3 minutos
play_circle_outline
Migración y modelo para almacenar los colores
3 minutos
play_circle_outline
Seeder credenciales API Hexanet
2 minutos
play_circle_outline
Contrato JWT para el servicio Hexanet
2 minutos
play_circle_outline
Configurar nuevos canales de log para la API de Hexanet
2 minutos
play_circle_outline
Iniciar servicio para consumir la API de Hexanet
2 minutos
play_circle_outline
Configurar el cliente HTTP con las credenciales de la API de Hexanet
4 minutos
play_circle_outline
Método para comprobar las respuestas de la API de Hexanet
3 minutos
play_circle_outline
Validar tokens y solicitar nuevos cuando expiren
3 minutos
play_circle_outline
Añadir petición login al servicio Hexanet para iniciar sesión
4 minutos
play_circle_outline
Añadir petición logout al servicio Hexanet para cerrar sesión
3 minutos
play_circle_outline
Añadir peticiones para consumir la API de colores de Hexanet
3 minutos
play_circle_outline
Añadir petición healthCheck al servicio Hexanet
2 minutos
play_circle_outline
Servicio HttpProvider para resolver el cliente Http
6 minutos
play_circle_outline
Trait WithProvider para los comandos Hexanet
3 minutos
play_circle_outline
Comando Health Check
4 minutos
play_circle_outline
Comando Login
4 minutos
play_circle_outline
Comando Logout
3 minutos
play_circle_outline
Comando GetColors
9 minutos
play_circle_outline
Comando GetColor
9 minutos
play_circle_outline
Comando CreateColor
8 minutos
play_circle_outline
Despedida
1 minutos
Vídeo de introducción Comunicación Segura entre Proyectos Laravel con JWT
play_circle_filled

Desbloquea el curso

starVer planes de suscripción
school

¿Qué aprenderás?

JWT en Laravel

JWT es un estándar de la comunicación HTTP entre servidor y clientes, por ejemplo, es muy utilizado para la comunicación segura entre aplicaciones móviles y APIs. En Cursosdesarrolloweb hemos trabajado muchas veces con JWT, con Laravel y Symfony

En Laravel tenemos Laravel Passport, una herramienta que funciona muy bien para la autenticación API, pero puede no ser la solución si lo que buscamos es poder trabajar con múltiples sistemas de autenticación, JWT, API Tokens, Basic, por este motivo, en este curso quiero ofrecerte una solución completa y personalizada para atender cualquier caso que requiera de la comunicación y consumo de API con Laravel.

Este curso ofrece un enfoque diferente, no vamos a comunicar cliente y servidor como otras veces, sino que vamos a comunicar servidor y servidor, bueno, realmente será un cliente, pero no, me explico.

API, generando JWT en Laravel

El primer proyecto será una API con Laravel a la que añadiremos el sistema de autenticación JWT, básicamente los métodos de login y logout. El método de login retornará un access token válido durante 60 segundos (ideal para desarrollo), el método logout invalidará el token.

Cuando un token haya expirado, en lugar de utilizar la técnica de refresh token, simplemente crearemos uno nuevo y se lo retornaremos al cliente, es algo que funciona bien y es muy fácil de implementar.

Una vez cualquiera se identifique en la API, podrá consumir otros recursos, en este caso trabajaremos con una tabla de colores, retornando el nombre y sus representaciones hexadecimal y RGB. Para ello expondremos 3 endpoints adicionales que estarán protegidos por la autenticación JWT: obtener colores, obtener un color y crear color.

Este será el desarrollo de nuestra maravillosa API.

CLIENTE, comunicación segura con JWT

Este será un cliente de la API de Hexanet, pero podríamos crear muchos más clientes que podrían consumir esa API.

Debemos entender que todas las comunicaciones desde el cliente a la API las haremos haciendo uso de peticiones HTTP.

Lo primero que haremos será crear una arquitectura sólida que nos permita no sólo consumir un cliente como Hexanet, sino cualquier otro cliente, y no sólo con JWT, sino con cualquier otro sistema de autenticación. Para ello, almacenaremos en base de datos la configuración de cada cliente API con su nombre, URL y credenciales, incluyendo el JWT que obtengamos cada vez. También crearemos un contrato para los clientes que deban implementar la lógica de JWT, login, logout y tokenIsValid.

Una vez tengamos la configuración base de nuestro cliente, desarrollaremos cada nuevo cliente, en nuestro caso un servicio Hexanet, el cual tendrá la configuración HTTP necesaria para comunicarse con la API de Hexanet haciendo uso de las credenciales que nos han entregado.

Ya que vamos a trabajar con JWT, deberemos implementar el contrato JWT, login, logout y tookenIsValid. Esto lo podríamos extrapolar fácilmente a otros sistemas de autenticación, pero nuestro caso será JWT. Nuestro servicio Hexanet, además de hacer uso de la autenticación JWT, también tendrá métodos que consuman la API de Hexanet, getColors, getColor, y createColor.

Para cada tipo de endpoint: auth, color, guardaremos los posibles errores que aparezcan en logs personalizados diariamente durante 14 días, de esta forma podremos ver de forma ordenada si hemos tenidos errores en los últimos días e ir resolviendo posibles problemas en nuestro software.

Otra cosa interesante que añadiremos será un HealthCheck, que no es nada más y nada menos que una petición head a la API de Hexanet para saber si la API está funcionando, esto sería algo que podríamos consultar varias veces al día para saber si todo están en orden en la API que estamos consumiendo.

El cliente no ha finalizado, todavía queda mucho por hacer. El próximo paso es desarrollar un servicio que sea capaz de resolver el Provider (API) que deseamos consumir, en nuestro caso siempre será Hexanet, pero podríamos tener decenas, incluso miles :P. Para solucionar esto, crearemos un servicio al que llamaremos ApiProvider, el cual simplemente recibirá en el constructor el nombre del cliente. Con este dato, podremos resolver las credenciales y generar la instancia del servicio HTTP, en nuestro caso Hexanet, pero podría ser cualquier otro.

El paso siguiente será ver cómo consumir la API de Hexanet desde nuestro proyecto, y para seguir añadiendo nuevas herramientas a nuestro stack como desarrolladores Laravel, haremos uso de los comandos que nos ofrece, que son fáciles y potentes. El primer paso será añadir un nuevo directorio dentro de app/Console/Commands llamado Hexanet, aquí iremos dejando todos los comandos que deseemos utilizar, y algo más...

Para cada cliente, se me ocurre que en el directorio correspondiente de comandos, podemos crear un trait llamado WithProvider, el cual pueda ser utilizado por cada comando para resolver de forma automática el proveedor a utilizar, Hexanet por ejemplo :P.

Llegados a este punto, sólo nos quedará por desarrollar el resto de comandos para obtener los recursos de Hexanet de forma segura con JWT, esta será sin duda la parte más sencilla, pero también la que más ansiamos, sin duda es una de las metas del curso, pero para llegar hasta aquí primero debemos hacer muchas cosas que son realmente necesarias.


Esto es lo que vamos a estar desarrollando, 2 proyectos paso a paso para la Comunicación Segura entre Proyectos Laravel con JWT fácilmente extrapolable a otros sistemas de autenticación. Si te interesa este tema y quieres aprender a desarrollar este tipo de sistemas únicamente con lo que Laravel nos ofrece, no lo dudes, suscríbete a la plataforma y empieza el curso ahora, no te arrepentirás. ¡Nos vemos dentro!

assignment

Requisitos

Conocimientos de Laravel, aquí tienes un curso gratuito.
group

¿A quién va dirigido el curso?

Desarrolladores Laravel que deseen aprender a desarrollar de forma completa y paso a paso la Comunicación Segura entre Proyectos Laravel con JWT fácilmente extrapolable a otros sistemas de autenticación.
help_outline

¿Qué hacer en caso de dudas durante el curso?

Los planes de suscripción trimestral y anual incluyen soporte a través del foro del curso.

Las dudas que se planteen en el foro del curso serán respondidas en un plazo máximo de 24 horas laborables.

Las dudas planteadas deben estar relacionadas con el contenido del curso y no con desarrollos personalizados que no estén relacionados con el curso.

card_membership

Certificado de finalización

emoji_events

Al completar todas las lecciones del curso, obtendrás un certificado de finalización en formato PDF personalizado con tu nombre y un código QR de verificación.

  • center_focus_weak Código QR con enlace al curso
  • picture_as_pdf Descargable en formato PDF
  • person Personalizado con tu nombre

star Disponible exclusivamente para suscriptores.

Especialista con +15 años de experiencia en desarrollo web Full Stack. Dominio avanzado en Laravel y Vue.js, creando aplicaciones modernas de alto rendimiento. Instructor profesional con 8 años compartiendo conocimiento a través de cursos especializados que han formado a cientos de desarrolladores.

Israel Parra

Desarrollador Full Stack & Formador

Valoraciones

5
star star star star star

1 valoraciones

star star star star star
star star star star star_border
star star star star_border star_border
star star star_border star_border star_border
star star_border star_border star_border star_border
Jesús Araujo

hace 2 años

Jesús Araujo Oto curso excelente Israel ya me esto volviendo adoptó a tus cursos
star star star star star
El mundo de la API no la veía tan fácil hasta que realice este curso
visibility Vista previa

star

¿Te gusta lo que ves? Accede a este curso completo y a más de 200 cursos con una suscripción.

launch Ver planes de suscripción