Skip to main content

Overview

This document provides an overview of the middleware used in this project, specifically focusing on common implementations for authentication.

Custom Ratelimiter​

This middlewear is used to limit the number of requests a user can make to a route in a given time frame.

import {rateLimiter} from "@oluwabukunmi/credo/middlewear"
import express from "express"
const {login , register , refreshToken , logOut , resetPassword} = getAuthConfig().rateLimit


rateLimiter(10, 15) //rateLimiter(minutes, trys)
const router = express.Router()

router.post("/route", rateLimiter(10, 15), (req,res)=>{
res.send("Hello World")
})

Authenticate User​

This middlewear checks if the user is authorized to access the route i.e if the user has a valid access token

import {authenticateJWT} from "@oluwabukunmi/credo/middlewear"
import express from "express"
const router = express.Router()

router.post("/route", authenticateJWT, (req,res)=>{
res.send("Hello World")
})

Role Based Access Control​

This middlewear checks if the user has a valid role to access the route

import {requireRole} from "@oluwabukunmi/credo/middlewear"
import express from "express"
const router = express.Router()

router.post("/route", requireRole("admin"), (req,res)=>{
res.send("Hello World")
})

Request Logger​

This middlewear logs the request to the console for easier debugging 😁

import {requestLogger} from "@oluwabukunmi/credo/middlewear"
import express from "express"
const router = express.Router()

router.post("/route", requestLogger, (req,res)=>{
res.send("Hello World")
})