UNPKG

@admin-bro/express

Version:

This is an official AdminBro plugin which integrates it to expressjs framework

41 lines (40 loc) 1.59 kB
import AdminBro from "admin-bro"; import express, { Router } from "express"; import session from "express-session"; import { AuthenticationOptions, FormidableOptions } from "./types"; /** * @typedef {Function} Authenticate * @memberof module:@admin-bro/express * @description * function taking 2 arguments email and password * @param {string} [email] email given in the form * @param {string} [password] password given in the form * @return {CurrentAdmin | null} returns current admin or null */ /** * Builds the Express Router which is protected by a session auth * * Using the router requires you to install `express-session` as a * dependency. Normally express-session holds session in memory, which is * not optimized for production usage and, in development, it causes * logging out after every page refresh (if you use nodemon). * @static * @memberof module:@admin-bro/express * @example * const ADMIN = { * email: 'test@example.com', * password: 'password', * } * * AdminBroExpress.buildAuthenticatedRouter(adminBro, { * authenticate: async (email, password) => { * if (ADMIN.password === password && ADMIN.email === email) { * return ADMIN * } * return null * }, * cookieName: 'adminbro', * cookiePassword: 'somePassword', * }, [router]) */ export declare const buildAuthenticatedRouter: (admin: AdminBro, auth: AuthenticationOptions, predefinedRouter?: express.Router | null | undefined, sessionOptions?: session.SessionOptions | undefined, formidableOptions?: FormidableOptions | undefined) => Router;