Inicio de sesión alternativo por servicio web
Con el inicio de sesión alternativo, tus usuarios escriben un identificador y una clave en el formulario de la plataforma, y la plataforma los valida contra un servicio web externo de tu organización. Ese servicio decide si el usuario entra o no.
Es útil, por ejemplo, para validar con correo y contraseña o con teléfono y PIN contra un sistema propio.
Configurar el complemento
- Abre Administración, elige Complementos en el bloque Compañía y despliega Inicio de sesión.
- Abre Inicio de sesión alternativo.
- Completa el formulario:
| Campo | Qué es |
|---|---|
| Ruta | Obligatorio. La dirección (endpoint) del servicio web que recibirá las credenciales. |
| Campo identificador | El dato con el que se identifica el usuario. Define el Parámetro que se enviará al servicio web y una Etiqueta en español y una Etiqueta en inglés para el formulario de inicio de sesión. |
| Campo clave secreta | La clave del usuario. Se configura igual: Parámetro y etiquetas en español y en inglés. |
- Pulsa Guardar cambios. Según el instructivo, el complemento tiene un interruptor para activarlo o desactivarlo y antes de activarlo debes llenar y guardar todos los campos. [pendiente: confirmar la ubicación del interruptor en la pantalla actual]
El formulario incluye un enlace a las Instrucciones en PDF.
Qué envía la plataforma
La plataforma hace una petición POST a la Ruta con la cabecera Content-Type: application/json y un cuerpo con los dos parámetros que definiste. Por ejemplo, si llamaste identificador y clave a los parámetros:
{
"identificador": "usuario1",
"clave": "1234"
}
Cómo debe responder tu servicio
Respuesta correcta. Un código HTTP 2xx, con la cabecera Content-Type: application/json y este cuerpo:
{
"message": "OK"
}
Si el código es 2xx pero el cuerpo no cumple este formato, la plataforma lo trata como una respuesta fallida.
Datos del usuario (opcionales). La respuesta correcta puede incluir un objeto user_data con los atributos que quieras asociar al usuario:
| Atributo | Corresponde a | Longitud máxima |
|---|---|---|
email |
Email válido | 255 |
about |
Biografía | 500 |
name |
Nombre | 100 |
last_name |
Apellido | 100 |
job |
Cargo | 200 |
department |
Departamento | 254 |
country |
País, escrito como aparece en la lista de países del instructivo (español, inglés, francés, portugués y hebreo) | 255 |
city |
Ciudad | 500 |
phone |
Teléfono | 30 |
identification_number |
Número de identidad | 30 |
employee_number |
Número de empleado | 254 |
organization_name |
Nombre de la organización | 60 |
external_id |
ID externo, del inicio de sesión con token | 254 |
course_id |
Arreglo con los IDs de los cursos a los que se suscribe al usuario tras entrar | - |
group_id |
Arreglo con los IDs de los grupos a los que se suscribe al usuario tras entrar | - |
update |
true o false: si se actualiza la información ya registrada |
- |
También puedes enviar atributos personalizados. Los nombres y significados de los atributos básicos y personalizados están en la página https://{dominio}/#csv de tu plataforma.
Reglas que conviene conocer
- Si
email,employee_numberoexternal_idya pertenecen a otro usuario, ese atributo se ignora. - La plataforma identifica al usuario por el ID alternativo que envió al servicio externo. Si no existe y envías
user_data, se registra un usuario nuevo con todos los atributos, sin importarupdate. - Si el usuario ya existe, su información solo se actualiza cuando
updateestrue. Si no lo envías, su valor esfalse. - Caso especial: si el usuario no existe por ID alternativo y llega un
email, la plataforma busca un usuario con ese correo. Si lo encuentra y no tiene ID alternativo, le asocia el recibido. Si ya tiene un ID alternativo distinto, ignora a ese usuario y registra uno nuevo.
Respuesta fallida. Cualquier código que no sea 2xx, por ejemplo 4xx, con este cuerpo:
{
"message": "Mensaje de error"
}
La plataforma muestra al usuario el texto de message. Para mostrarlo en varios idiomas, agrega un objeto lang con códigos de dos letras: es, en, fr, pt y he. El objeto lang es opcional y depende de que exista message.
{
"message": "Mensaje de error",
"lang": {
"es": "Se ha producido un error",
"en": "An error occurred"
}
}
Si no envías message, o la respuesta no es un JSON válido, el usuario ve el mensaje por defecto: «Tus credenciales no pudieron ser verificadas. Por favor, contacta al administrador.»
Usuarios creados por la API
Si das de alta usuarios con la API, el atributo alternative_id identifica a quienes entran con este método.