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)
69 lines (58 loc) • 1.25 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 {
register,
verify,
forgotPassword,
resetPassword,
getRefreshToken,
login,
roleAuthorization
} = require('../controllers/auth')
const {
validateRegister,
validateVerify,
validateForgotPassword,
validateResetPassword,
validateLogin
} = require('../controllers/auth/validators')
/*
* Auth routes
*/
/*
* Register route
*/
router.post('/register', trimRequest.all, validateRegister, register)
/*
* Verify route
*/
router.post('/verify', trimRequest.all, validateVerify, verify)
/*
* Forgot password route
*/
router.post('/forgot', trimRequest.all, validateForgotPassword, forgotPassword)
/*
* Reset password route
*/
router.post('/reset', trimRequest.all, validateResetPassword, resetPassword)
/*
* Get new refresh token
*/
router.get(
'/token',
requireAuth,
roleAuthorization(['user', 'admin']),
trimRequest.all,
getRefreshToken
)
/*
* Login route
*/
router.post('/login', trimRequest.all, validateLogin, login)
module.exports = router