Skip to content
Documentación Front-End
  • Pages
    • Lineamientos Generales Front-end
      • Planning Poker
    • Preparacion del Ambiente de Desarollo
    • Estructura de Archivos
    • Buenas Practicas de desarrollo
    • Documento de Despliegue de Proyecto a un Servidor
    • Libreria de APIs
      • icon picker
        Solicitud de Token y ejecución de API con JWT.
      • Roles y permisos
      • Usuarios
    • Documentación Sistema Centralizado JUNAEB
      • Documentación Front-End
      • Listado de Funciones
    • API de Desarrollo
      • Usuarios
        • GET - Listar Usuarios
        • BUSCAR - USUARIOS - Pendiente
        • POST - USUARIOS
          • CREAR - USUARIOS
          • ACTUALIZAR - USUARIOS
        • PUT - USUARIOS
          • BLOQUEAR DESBLOQUEAR - USUARIOS
          • ELIMINAR- USUARIOS
        • GET - FICHA USUARIOS
      • TABLA DE PRUEBAS - SIGESREGISTROCIVIL
        • GET - SIGESREGISTROCIVIL
          • LISTAR - SIGESREGISTROCIVIL
      • TABLAS DINAMICAS
        • GET - TABLA DINAMICA
      • Logs Cronología
        • GET - Consultar_Cronologia
        • POST - Insertar_Cronologia
      • Login
        • POST - ACCESS TOKEN
        • GET - REFRESH TOKEN
        • POST - RESTABLECER CONTRASEÑA
        • POST - RESTABLECER CONTRASEÑA POR SISTEMA
        • GET - VALIDACION TOKEN
        • PUT - CAMBIO DE CONTRASEÑA
      • Prestadores
        • GET - LISTAR
        • POST - CREAR PRESTADOR
        • POST- MODIFICAR PRESTADOR
        • GET - LISTAR PRESTADOR X ID ("Tarjeta resumen prestador")
        • PUT - BLOQUEA/ DESBLOQUEA PRESTADOR
        • PUT - ELIMINAR PRESTADOR
        • POST - AGREGAR USUARIO EXTERNO CON PRESTADOR
        • GET - FICHA DE PRESTADOR X USUARIO EXTERNO
        • PUT - ELIMINACIÓN USUARIO EXTERNO CON PRESTADOR
      • Licitaciones
        • GET - FICHA RESUMEN
        • PUT - ElIMINACIÓN LICITACION X PRESTADOR
        • GET - LISTAR LICITACIONES PRESTADORES
        • POST - AGREGAR LICITACIÓN POR PRESTADOR
        • GET - LISTAR LICITACIONES
      • Preparaciones
        • GET - LISTAR PREPARACIONES
        • GET - LISTAR TIPO RACION
        • GET - LISTAR COMPONENTE SERVICIO
        • POST - AGREGAR COMPONENTE DE SERVICIO
        • PUT - ELIMINAR PREPARACION
        • PUT - EDITAR PREPARACIÓN
        • POST - INSERTAR PREPARACION
        • GET - SECCIÓN DE INFOPMACIÓN DE LAS PREPARACIONES
        • GET - LISTAR PREPARACIONES POR ID
      • Productos
        • GET - PRODUCTOS
        • POST - INSERTAR TIPO PRODUCTO
        • POST - INSERTAR PRODUCTO
        • PUT - MODIFICAR PRODUCTO
        • PUT - ELIMINAR PRODUCTO
        • GET - LISTAR TIPO INGREDIENTES
        • PUT - ELIMINAR TIPO PRODUCTO
      • Aportes Nutricionales
        • GET - LISTAR APORTES NUTRICIONALES

Solicitud de Token y ejecución de API con JWT.

Login y Generación de Token JWT

Desde el FrontEnd se debe enviar en formato JSON a Servidor BackEnd la siguiente solicitud:
{
"login_usuario": "nombre de usuario",
"password_usuario":"Contraseña de usuario"
}

Si la respuesta es correcta, el servidor deberá responder:
Desde Base de Datos a BackEnd:
{
"usuario_valido": true, //devuelve true si el usuario se autentica correctamente
"primer_ingreso": true, // indica si este es el primer ingreso del usuario al sistema
"usuario": {
"id":0, // id del usuario
"nombres": "", // nombre del usuario
"primer_apellido": "", // primer apellido del usuario
"segundo_apellido": "", // Segundo apellido del usuario
"correo": "", // correo institucional del usuario
"telefono": "+56...", // teléfono del usuario: (cod País)(cod Ciudad)(numero)
"area": "", // area donde trabaja el usuario
"departamento": "", // departamento al cual pertenece el usuario
"cargo": "", // cargo que desenpeña el usuario
"imagen": "", // imagen de Avatar del usuario
"bloqueo":false,
"tipo_usuario": 0 // indica que tipo de usuario es (1 = interno, 2 = externo)
"id_tipo_usurio": 1,
"nombre_tipo_usuario": "INTERNO",
"intentos": 0,
}
}

Desde BackEnd a FrontEnd

{
"token": "${Token}", // token en Formato JWT
"refresh_token": "${refresh_token}", // token de Refresco JWT
"usuario_valido": true,
"primer_ingreso": true,
"usuario": {
"nombres": "",
"primer_apellido": "",
"segundo_apellido": "",
"correo": "",
"telefono": "+56...",
"area": "",
"departamento": "",
"cargo": "",
"imagen": "",
"tipo_usuario": ""
}
}

El token generado será con
donde el payload deberá contener la siguiente informacion:
{
"id_usuario": "111",
"roles": [
{
"id_rol": 1,
"nombre_rol": "Administrador"
}
]
}

Si la respuesta es un error, el servidor deberá responder con el siguiente JSON:

{
"usuario_valido":false,
"error":{
"titulo_error":"",
"mensaje_error":"",
"codigo_error":"",
"descripcion_error":"",
}
}

Procedimiento de Consultas API protegidas con JWT

Siempre deberá ser envia la consulta API con el header :
Header -> "Authorization Bearer ${token}"

Si el token es correcto, el sistema debe generar la siguiente respuesta :
{
"$ENTIDAD":{ // corresponde a la entidad consultada ( usuarios, roles, minutas, etc...)
...
}
}

Si el token es incorrecto el servidor debiese responder :
estado HTTP unouthorized (401)
{
{
"usuario_valido":false,
"error":{
"titulo_error":"Error de autenticacion",
"mensaje_error": ${mensaje de sistema},
"codigo_error":"401",
"descripcion_error":${mensaje de sistema},
}
}

Actualziacion del token de Acceso:

En el caso de que el token esté expirado, el sistema debe realizar una consulta al servidor para realizar el refresco del token. Si el token se refresca correctamente, el sistema deberá guardar el nuevo token y continuar con la operación. En lo posible, todo este proceso debe ser agnóstico para el usuario.
Respuesta Token expirado
estado HTTP unouthorized (401)
{
{
"usuario_valido":false,
"error":{
"titulo_error":"Error de autenticacion",
"mensaje_error": ${mensaje de sistema},
"codigo_error":"401",
"descripcion_error":${mensaje de sistema},
}
}


En el caso de que el token no pueda ser refrescado correctamente el sistema debera Informar al usuario a travez de un error indicando que el proceso de “refresh” ha fallado, para identificar de manera facil en que parte el proceso ha fallado y se debe enviar al usuario a la pagina de “No Autorizado”.
estado HTTP "el que corresponda"
{
"status": "${el estado que corresponda}",
"data": {
"code": "${el estado que corresponda}",
"message": "No se ha podido refrescar el token de acceso, favor loguearse nuevamente, si el error persiste, favor contactarse con la mesa de ayuda"
}
}

Manejo de Errores API

Si cualquier respuesta de api genera error el sistema debera responder:
{
"error": {
"titulo_error": "", // titulo que identifique el error de manera clara
"mensaje_error": "", // Mensaje descriptivo del error ocurrido
"codigo_error": "", // El codigo que identifique al error
"descripcion_error": "" // mensaje de error enfocado al area de soporte para analisis
}
}

En el caso de que el error sea no controlado el sistema deberia manejar los errores de esta manera:
Atributo
Base de Datos
BackEnd -> BD
FrontEnd -> BackEnd
titulo_error
Error en base de datos
Error al conectarse a la base de datos
Error de conexion a Servidor
mensaje_error
Se ha producido un error en base de datos
Se ha producido un error al conectarse a la base de datos
Se ha producido un error al conectarse al servidor
codigo_error
“Codigo de Error en BD”
"Codigo de Error en BackEnd”
"Codigo de Error en FrontEnd”
descripcion_error
“Mensaje de sistema”
“Mensaje de sitema”
"Mensaje de sistema”
There are no rows in this table


 
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.