Plugin that allows you to add AdminJS to Fastify applications.
Installation
npm install @adminjs/fastify
Usage
const AdminJSFastify = require('@adminjs/fastify')
It exposes 2 methods that create an Express Router, which can be attached
to a given url in the API. Each method takes a pre-configured instance of AdminJS.
- AdminJSExpress.buildRouter(admin, [predefinedRouter])
- AdminJSExpress.buildAuthenticatedRouter(admin, auth, [predefinedRouter], sessionOptions)
If you want to use a router you have already created - not a problem. Just pass it
as a predefinedRouter
parameter.
You may want to use this option when you want to include
some custom auth middleware for you AdminJS routes.
Example without an authentication
const AdminJS = require('adminjs')
const AdminJSFastify = require('@adminjs/fastify')
const fastify = require('fastify')()
const AdminJS = new AdminJS({
databases: [],
rootPath: '/admin',
})
AdminJSFastify.buildRouter(AdminJS)
app.listen(8080, () => console.log('AdminJS is under localhost:8080/admin'))
Using build in authentication
To protect the routes with a session authentication, you can use predefined
module:@adminjs/fastify.buildAuthenticatedRouter method.
Note! To use authentication in production environment, there is a need to configure
fastify-session for production build. It can be achieved by passing options to
sessionOptions
parameter.
Adding custom authentication
Where req.session.admin
is AdminJS#CurrentAdmin,
meaning that it should have at least an email property.