IIC2513-2020-1 / syllabus

Material del curso
35 stars 3 forks source link

Carpeta de middlewares en el proyecto #107

Closed JJJGGGG closed 4 years ago

JJJGGGG commented 4 years ago

Hola! Estamos pensando en crear más middlewares generales (por ejemplo de autorizacion). Es mejor dejarlos en una carpeta y archivo distintos o dejarlos en router.js (por ejemplo)? En el caso de una carpeta, dónde nos recomiendan ponerla?

Había pensado en algo así:

<root>
|--src
|  |--middlewares
|     |--autorizacion.js
|-- (el resto)

Se llamarían con import 'middlewares/autorizacion' o similar en los archivos que lo requieran


Otra duda: Es correcto hacer un middleware de autorización de este estilo?

function authorize(roles_aceptados) {
  return async function(ctx, next) {
    if(ctx.state.currentUser.tipo in roles_aceptados) {
      return next();
    }
    return redirect(alguna url);
  }
}
gpvidal commented 4 years ago

Hola @JJJGGGG ,

Sí, yo te recomiendo que sea en una carpeta distinta en archivos. La forma que planteas está bien.

Recuerda eso sí que se impotaría como

import recurso from '../../path/to/middlewares/file.js'

Sobre tu segunda pregunta, el middleware es la función que retorna la función authorize (que es como una función generadora), pero sí. Se ve buena esa solución :wink:

Saludos,