Express-JWT manejando frase secreta secreta por rutas

Aquí está mi caso de uso.

En mi aplicación Express utilizando el módulo Express-jwt, tengo 2 rutas principales. Me gustaría asegurar mis rutas con 2 frases de contraseña distintivas.

app.use('/api/v1/admin', jwt({secret: "blabla1"}).unless({path:['/api/v1/admin/login']})); app.use('/api/v1', jwt({secret: "blabla2"}).unless({path: ['/api/v1/login']})); 

En este caso, no funciona como esperaba … ¿Hay alguna forma de lograr esto en una sola aplicación Express?

Gracias de antemano por su ayuda chicos!

Tu syntax está un poco apagada, lo que estás haciendo arriba es establecer el secreto para toda la aplicación. Si quisiera proteger una ruta determinada, podría hacer algo como a continuación.

 app.all('/api/v1', jwt({secret: "blabla2"}).unless({path: ['/api/v1/login']})); app.all('/api/v1/admin', jwt({secret: "blabla1"}).unless({path:['/api/v1/admin/login']})); 

El código anterior le permite definir diferentes secretos para una ruta en particular. La llamada a app.all captura todos los tipos de llamadas HTTP.