Laravel 8 — Custom Api Auth, login de usuario con API externa

Guillermo Farías Pavez
lemontech-engineering
2 min readJun 17, 2021

Como dice el título, haremos una autenticación de usuarios utilizando una API externa. Esta implementación se basa en la documentación oficial, no tiene nada extra aparte del framework y el ejemplo es válido para autenticar tanto por API como otra fuente externa.

Además, es super rápido y fácil. La secuencia final será esta :

Documentación base

Siempre es necesario saber lo que estamos implementando

Guard 📚 https://laravel.com/docs/8.x/authentication#adding-custom-guards

UserProvider 📚 https://laravel.com/docs/8.x/authentication#adding-custom-user-providers

Código

TokenGuard

No es parte de framework, este es el nuevo Guard que le dirá al Auth de Laravel cómo obtener el usuario autenticado y usará el nuevo Provider

TokenUserProvider

El proveedor implementa la manera en cómo validamos las credenciales del usuario, aquí se puede aplicar la lógica que nosotros queramos para validar.

En este ejemplo se utiliza una API externa llamada SSO (single sign on)

AuthServiceProvider

Este Provider es parte de Laravel. Lo que se debe hacer es extender de Auth para agregar nuestro nuevo Driver.

En este ejemplo el nuevo driver se llama SSO

Config Auth

También es parte del framework, aquí dentro del arreglo de Guards debemos bautizar al nuestro, lo que importa es el driver, ese debe ser el mismo que usemos en AuthServiceProvider para extender Auth.

Rutas de la Api

Debemos utilizar el middleware auth:sso que corresponde a auth:{driver} para proteger las rutas.

Eso es todo, ahora con un cliente http puedes probar tu API.

--

--