Creando un SDK web para Logto en minutos
Aprenda cómo crear un SDK personalizado para Logto usando `@logto/browser`.
Logto, una plataforma de autenticación de código abierto, ofrece una gran cantidad de SDKs oficiales diseñados para simplificar la integración para varios marcos de trabajo y plataformas. Sin embargo, aún hay muchas plataformas que no cuentan con SDKs oficiales.
Para cubrir esta brecha, Logto proporciona el paquete fundamental @logto/browser
, diseñado para ayudar a los desarrolladores a crear SDK personalizados adaptados a requisitos específicos. Este paquete implementa las funcionalidades centrales de Logto, independientes de cualquier marco de trabajo o plataforma específica, siempre que soporte JavaScript y se ejecute en un entorno de navegador.
En esta guía, te guiaremos a través de los pasos para crear un SDK de React usando @logto/browser, este SDK implementará el flujo de inicio de sesión. Puedes seguir los mismos pasos para crear un SDK para cualquier otra plataforma basada en JavaScript que se ejecute en un navegador.
El flujo de inicio de sesión
Antes de comenzar, entendamos el flujo de inicio de sesión en Logto. El flujo de inicio de sesión consta de los siguientes pasos:
- Redireccionar a Logto: El usuario es redirigido a la página de inicio de sesión de Logto.
- Autenticar: El usuario ingresa sus credenciales y se autentica con Logto.
- Redireccionar de nuevo a tu app: Después de una autenticación exitosa, el usuario es redirigido de vuelta a tu aplicación con un código de autenticación.
- Intercambio de código: Tu aplicación intercambia el código de autenticación por tokens.
Breve introducción de @logto/browser
El paquete @logto/browser
expone una clase LogtoClient
que proporciona las funcionalidades centrales de Logto, incluyendo métodos para el flujo de inicio de sesión:
signIn()
: Genera la URL de autenticación OIDC y redirige a ella.handleSignInCallback()
: Verifica y analiza la URL de callback y extrae el código de autenticación, luego intercambia el código por tokens llamando al endpoint de token.isAuthenticated()
: Verifica si el usuario está autenticado.
Creando el SDK de React
En el SDK, proporcionaremos 2 hooks: useLogto
y useHandleSignInCallback
, y junto con un componente LogtoProvider
:
useLogto
: Un hook que proporciona el métodosignIn
para desencadenar el flujo de inicio de sesión, y el estadoisAuthenticated
para verificar si el usuario está autenticado.useHandleSignInCallback
: Un gancho que maneja la URL de callback e intercambia el código de autenticación por tokens, completa el flujo de inicio de sesión.
Para usar el SDK, simplemente puedes envolver tu aplicación con el componente LogtoProvider
y usar los hooks para verificar el estado de autenticación, iniciar sesión y manejar el callback.
Paso 1: Instala el paquete
Primero, instala el paquete @logto/browser
usando npm u otros gestores de paquetes:
Paso 2: Define el contexto de React
Define el contexto del proveedor, que contiene 3 partes:
- La instancia subyacente de
LogtoClient
que se inicializará en el proveedor y se utilizará en los hooks. - El estado de autenticación.
- El método para establecer el estado de autenticación.
Crea un nuevo archivo context.tsx
y escribe el siguiente código:
Paso 3: Implementar el proveedor
Con el contexto listo, implementemos el proveedor. El proveedor inicializará la instancia de LogtoClient
, verificará si el usuario está autenticado y proporcionará el contexto a sus hijos.
Crea un nuevo archivo provider.tsx
:
Paso 4: Implementar los hooks
Ahora, implementemos los hooks.
useLogto
: En este hook, usamos el contexto para obtener la instancia deLogtoClient
, y proporcionamos el métodosignIn
y el estadoisAuthenticated
. Puedes seguir añadiendo más métodos a este hook.useHandleSignInCallback
: Este hook leerá la URL de callback del navegador, extraerá el código de autenticación y lo intercambiará por tokens. También establecerá el estado de autenticación entrue
después de que el usuario esté autenticado.
Crea un nuevo archivo hooks.ts
y escribe el siguiente código:
Punto de control: usando el SDK
Ahora, has creado el SDK de React para Logto. Puedes usarlo en tu aplicación envolviendo la aplicación con el componente LogtoProvider
y usando los hooks para verificar el estado de autenticación, iniciar sesión y manejar el callback. Puedes consultar el proyecto de muestra oficial de React aquí.
Conclusión
En esta guía, te hemos guiado a través de los pasos para crear un SDK de React para Logto implementando el flujo básico de autenticación. El SDK proporcionado aquí es un ejemplo básico. Puedes extenderlo añadiendo más métodos y funcionalidades para satisfacer las necesidades de tu aplicación.
Puedes seguir los mismos pasos para crear un SDK para cualquier otra plataforma basada en JavaScript que se ejecute en un navegador.
Recursos: