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")
})