node-express-mongodb-jwt-rest-api-skeleton
Version:
Node.js express.js MongoDB JWT REST API - This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API)
63 lines (54 loc) • 1.06 kB
JavaScript
const express = require('express')
const router = express.Router()
require('../../config/passport')
const passport = require('passport')
const requireAuth = passport.authenticate('jwt', {
session: false
})
const trimRequest = require('trim-request')
const { roleAuthorization } = require('../controllers/auth')
const {
getProfile,
updateProfile,
changePassword
} = require('../controllers/profile')
const {
validateUpdateProfile,
validateChangePassword
} = require('../controllers/profile/validators')
/*
* Profile routes
*/
/*
* Get profile route
*/
router.get(
'/',
requireAuth,
roleAuthorization(['user', 'admin']),
trimRequest.all,
getProfile
)
/*
* Update profile route
*/
router.patch(
'/',
requireAuth,
roleAuthorization(['user', 'admin']),
trimRequest.all,
validateUpdateProfile,
updateProfile
)
/*
* Change password route
*/
router.post(
'/changePassword',
requireAuth,
roleAuthorization(['user', 'admin']),
trimRequest.all,
validateChangePassword,
changePassword
)
module.exports = router