Role-based Access to Routes in AdonisJS
AdonisJS provides a standard way to define a middleware and enable access to routes based on defined validation rules. This middleware is leveraged to allow role-based access to routes. Your start | routes.js file will have something akin to below - const Route = use("Route"); Route.get("/", () => { return { greeting: "Hello world!" }; }); First, we will group routes for the different roles and introduce the middleware. // start | Routes.js Route.group(() => { Route.post("/user-register", "UserController.register"); Route.post("/user-login", "UserController.login"); }); Route.group(() => { Route.get("/todo", "TodoController.index"); Route.post("/todo", "TodoController.create"); }).middleware("auth"); Route.group(() => { Route.delete("/todo", "TodoController.delete"); }).middleware(["auth", "admin"]); register and login methods are available to unauthenticated and authenticated users To do create and index are available only to authenticated users. auth is provided by AdonisJS Deleting to do is allowed only for admin Now, we write the actual middleware for admin. ...