Special Passport Authentication for Specific Route Special Passport Authentication for Specific Route express express

Special Passport Authentication for Specific Route


This can be addressed with a custom middleware which calls the Passport.js middleware.

const authenticationWhiteList = [  'POST /beer']function Authenticate (request, response, next) {  let route = `${request.method} ${request.baseUrl}`  if (_.indexOf(authenticationWhiteList, route) !== -1) {    next()  } else {    passport.authenticate('jwt', { session: false })(request, response, next)  }}

Then change the authentication code to this one:

const beerRoutes = require('./beerRoutes')     // an instance of express router// let authenticateRoute = passport.authenticate('jwt', { session: false })let authenticateRoute = Authenticaterouter.use('/beer', authenticateRoute, beerRoutes)