¿Qué es y para qué sirve?
Es una integración que permite el acceso a usuarios mediante tokens JWT (parámetros seguros) que se envían desde un recurso externo hacia la tienda. Los recursos externos podrían ser por ejemplo la intranet de una organización educativa o empresa.
Esta integración permite realizar un inicio de sesión automático a un usuario específico cuando existe en la base de datos de la tienda. Si el usuario no existe, se creará uno e iniciará sesión.
Sirve para el inicio de sesión sincrónico automático desde la página de tu cliente a la tienda. Para ello, los usuarios deberán hacer clic en un enlace (botón o link en la plataforma externa) para iniciar sesión automáticamente en la tienda.
El sistema tiene una ruta /auth/token que busca un parámetro llamado external-auth-token en cadenas de consulta, cookies o encabezados. Este parámetro es un JWT con información específica y firmado con una clave compartida (El algoritmo es HS256).
https:// yout-store.com /auth/ token? external-auth-token= {new-jwt-token}
Por ejemplo: https:// alephdigital.publica.la /auth/token? external-auth-token= eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwdWJsaWNhbGEiLCJqdGkiOiJqbm9zcWl4dS13YWlic3Zzejh4ODl3Z3l4dGZkeTR4NnIiLCJleHAiOjE2MjM0NTQ3NzgsImF1ZCI6ImZhcmZhbGxhIiwic3ViIjoidXNlciIsInVzZXIiOnsidXVpZCI6ImQ5ZGZiNWNmLWU4MTctNDJkZi1hZDE1LTdmM2U4NTMwNDNkMiIsImVtYWlsIjoiZ29uemFsZXpAdGVzdC5zeW5jcm9taW5kLmNvbSJ9fQ.RvoGxFq9e9uJMehG87Y5ISbaqMz_4wtKBVA
💡 Puede complementarse para asignar permisos de lectura a usuarios mediante Api Orders. Aquí te compartimos nuestra documentación técnica.
⚠️ Esta integración no se puede utilizar para registros de usuarios como una API.
Te recomendamos revisar AQUÍ nuestra documentación técnica en donde te compartimos ejemplos para crear tokens JWT con PHP, Python y JavaScript e información adicional para solucionar problemas que puedan presentarse.
📹 Te dejamos aquí un instructivo completo.
CONFIGURACIÓN:
1. Requisitos previos. Una vez hayas creado el JWT token, debes escribirnos a [email protected] para brindarnos la siguiente información:
redirect_url: URL para la redirección en caso de falla en el proceso de inicio de sesión o registro.
Por ejemplo "https://www.alephdigital.publica.la/?libros-digitales=error"
jti: una key que se utiliza durante la creación del token. Es una clave compartida que se usa para firmar los tokens. Podrás obtener más información en el paso 2.
Por ejemplo "&BKcc7<XX:7>~V2A"
⚠️ No utilizar la API key que encontrarás en tu Panel de control. Utiliza la generada en la herramientra proporcionada o en el sitio web de preferencia para este paso y los siguientes.
issuer: identifica al firmante de confianza del token y se utiliza en los datos de carga útil del token. Aquí puedes colocar el slug o nombre de la tienda.
Por ejemplo "alephdigital"
2. Crea un token JWT. A continuación te compartimos un ejemplo y las referencias de cada key:
Para generar una clave JWT como explicamos a continuación puedes utilizar la herramiento jwt.io.
{
"iss" : "publicala" , // Slug para identificar quién firma el token. Debe utilizar el emisor proporcionado en el paso de requisitos previos. Recomendamos sea el nombre de la tienda.
"jti" : "jnosqixu-waibsvsz8x89wgyxtfdy4x6r" , // Una identificación única para el token, podría estar en formato UUID V4. Puedes utilizar Passwords Generator.
"exp" : 1614556800 , // Fecha de vencimiento del token, es una marca de tiempo expresada en segundos. Debe ser 60 segundos en el futuro. La zona horaria utilizada es UTC. Puedes utilizar https://www.unixtimestamp.com/
"aud" : "farfalla" , // Identifica el destino del token. No modificar, siempre debe ser la cadena "farfalla".
"sub" : "usuario" , // No modificar, siempre debe ser la cadena "usuario".
"intended_url" : "https://your-store.com/reader/publication-name" // Le permite configurar la URL de destino después de autenticar al usuario. Puede verificar cómo configurar esto en la sección Cómo usar la URL deseada.
"user" : {
"uuid" : "44b8cc41-503c-4e76-9144-7193af85384e" , // [obligatorio] Es una cadena obligatoria y se utiliza para identificar a cada usuario. Es esencial que sea único para cada usuario, podría ser la identificación de usuario convertida en cadena (por ejemplo, 1234) o un UUID (por ejemplo, eeb78e86-8105-443d-bd28-b2eee1607d52).
"email" : "[email protected]" , // [opcional] Se utiliza para identificar a los usuarios dentro del sistema y al analizar las estadísticas de uso. Si no se incluye, el sistema generará al nuevo usuario.
"picture_url" : "https://image-picture-domain.com/picture.jpg", // [opcional] Si está presente, se utiliza como imagen de perfil.
"accept_terms_and_policies": true // [opcional] Booleano. Se utiliza para aceptar automáticamente los términos y condiciones una vez el usuario ha sido creado.
}
}
Key | Descripción |
iss | Slug para identificar quién firma el token. Debe utilizar el issuer proporcionado en el paso anterior |
jti | Una identificación única para el token, podría estar en formato UUID V4. |
exp | Fecha de vencimiento del token, es una marca de tiempo expresada en segundos. Puedes utilizar esta herramienta para generarlo. |
aud | Identifica el destino del token. Debe ser el string farfalla. |
sub | Debe ser el string usuario. |
intended_url | Permite configurar la URL de destino después de autenticar al usuario. Ten en cuenta las siguientes consideraciones:
|
user | Un objeto con los siguientes campos:
|
Herramientas útiles:
- jwt.io
Para futuras integraciones por Token siempre debes utilizar la misma información que nos brindaste en el paso Requisitos previos.
Esperamos que este tutorial te haya resultado sencillo y si tienes más dudas escríbenos a [email protected].