@admin-bro/express
Version:
This is an official AdminBro plugin which integrates it to expressjs framework
41 lines (40 loc) • 1.59 kB
TypeScript
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;